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