From 77d75870f40cc677c7652c7d8694da1d7eb45834 Mon Sep 17 00:00:00 2001
From: zhanzhiqin <895896009@qq.com>
Date: 星期二, 30 十一月 2021 18:27:32 +0800
Subject: [PATCH] fix

---
 ximon-admin/src/main/java/com/sandu/ximon/admin/security/SecurityUtils.java |   33 ++++++++++++++++++++++++++-------
 1 files changed, 26 insertions(+), 7 deletions(-)

diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/security/SecurityUtils.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/security/SecurityUtils.java
index f71efd8..50a14ce 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/security/SecurityUtils.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/security/SecurityUtils.java
@@ -15,8 +15,7 @@
 import com.sandu.common.security.jwt.JwtTokenProvider;
 import com.sandu.common.util.RequestHolder;
 import com.sandu.common.util.SpringContextHolder;
-import com.sandu.ximon.admin.dto.AdminJwtUser;
-import com.sandu.ximon.dao.domain.Admin;
+import com.sandu.ximon.dao.enums.AdministratorEnums;
 import org.springframework.security.core.Authentication;
 import org.springframework.security.core.context.SecurityContextHolder;
 import org.springframework.security.core.userdetails.UserDetails;
@@ -32,19 +31,26 @@
  */
 public class SecurityUtils {
 
-
-    public static UserDetails getUserDetails() {
+    /**
+     * 鑾峰彇鐢ㄦ埛淇℃伅
+     */
+    private static UserDetails getUserDetails() {
         final Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
         if (authentication == null) {
             throw new BusinessException(ResponseStatusEnums.TOKEN_INVALID.getCode(), ResponseStatusEnums.TOKEN_INVALID.getMessage());
         }
-        if (authentication.getPrincipal() instanceof UserDetails) {
+        Integer administratorIdentity = getAdministratorIdentity();
+        if (AdministratorEnums.ADMIN.getCode().equals(administratorIdentity) ) {
             UserDetails userDetails = (UserDetails) authentication.getPrincipal();
-            UserDetailsService userDetailsService = SpringContextHolder.getBean(UserDetailsService.class);
+            UserDetailsService userDetailsService = SpringContextHolder.getBean("adminDetailsService");
+            return userDetailsService.loadUserByUsername(userDetails.getUsername());
+        } else if (AdministratorEnums.CUSTOMER.getCode().equals(administratorIdentity)) {
+            UserDetails userDetails = (UserDetails) authentication.getPrincipal();
+            UserDetailsService userDetailsService = SpringContextHolder.getBean("customerDetailsService");
             return userDetailsService.loadUserByUsername(userDetails.getUsername());
         }
+
         return null;
-//        throw new BusinessException(ResponseStatusEnums.TOKEN_INVALID.getCode(), ResponseStatusEnums.TOKEN_INVALID.getMessage());
     }
 
     /**
@@ -62,6 +68,19 @@
     }
 
     /**
+     * 鑾峰彇绠$悊鍛樿韩浠斤紝 绫诲瀷鍙 {{@link AdministratorEnums}}
+     *
+     * @return
+     */
+    public static Integer getAdministratorIdentity() {
+        final Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
+        if (authentication == null) {
+            throw new BusinessException(ResponseStatusEnums.TOKEN_INVALID.getCode(), ResponseStatusEnums.TOKEN_INVALID.getMessage());
+        }
+        return (Integer) authentication.getCredentials();
+    }
+
+    /**
      * 鑾峰彇绯荤粺鐢ㄦ埛id
      *
      * @return 绯荤粺鐢ㄦ埛id

--
Gitblit v1.9.3