From 3e77538aa01616597bfe52a60d7b256011be9b6e Mon Sep 17 00:00:00 2001
From: chenjiantian <214228265@qq.com>
Date: 星期四, 02 十二月 2021 16:03:36 +0800
Subject: [PATCH] 基础功能完善
---
ximon-admin/src/main/java/com/sandu/ximon/admin/security/SecurityUtils.java | 41 ++++++++++++++++++++++++++++++-----------
1 files changed, 30 insertions(+), 11 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..7951bc7 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,25 +31,32 @@
*/
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());
}
/**
- * 鑾峰彇绯荤粺鐢ㄦ埛鍚嶇О 鐧诲綍鍚�
+ * 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛鐧诲綍鍚�
*
- * @return 绯荤粺鐢ㄦ埛鍚嶇О
+ * @return 褰撳墠鐧诲綍鐢ㄦ埛鐧诲綍鍚�
*/
public static String getUsername() {
final Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
@@ -62,9 +68,22 @@
}
/**
- * 鑾峰彇绯荤粺鐢ㄦ埛id
+ * 鑾峰彇绠$悊鍛樿韩浠斤紝 绫诲瀷鍙 {{@link AdministratorEnums}}
*
- * @return 绯荤粺鐢ㄦ埛id
+ * @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();
+ }
+
+ /**
+ * 鑾峰彇褰撳墠鐧诲綍璐﹀彿鐨刬d
+ *
+ * @return 褰撳墠鐧诲綍璐﹀彿鐨刬d
*/
public static Long getUserId() {
SecurityProperties properties = SpringContextHolder.getBean(SecurityProperties.class);
--
Gitblit v1.9.3