dengsixing 2 месяцев назад
Родитель
Сommit
c5a508d8a7

+ 4 - 3
src/main/java/com/fdkankan/scene/Interceptor/CheckPermitAspect.java

@@ -10,6 +10,7 @@ import com.fdkankan.redis.util.RedisUtil;
 import com.fdkankan.scene.entity.*;
 import com.fdkankan.scene.httpclient.MyClient;
 import com.fdkankan.scene.service.*;
+import com.fdkankan.scene.util.UserUtil;
 import com.fdkankan.web.response.Result;
 import com.fdkankan.web.user.SSOLoginHelper;
 import com.fdkankan.web.user.SSOUser;
@@ -47,8 +48,8 @@ public class CheckPermitAspect {
 	@Value("${4dkk.manageService.api.checkEditPermission}")
 	private String checkEditPermissionApi;
 
-	@Autowired
-	private SSOLoginHelper ssoLoginHelper;
+	@Resource
+	private UserUtil userUtil;
 	@Autowired
 	private RedisUtil redisUtil;
 	@Autowired
@@ -82,7 +83,7 @@ public class CheckPermitAspect {
 	public void doBefore(JoinPoint joinPoint) throws Exception {
 		HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
 		// 读取session中的用户
-		SSOUser user = ssoLoginHelper.getSsoUser(request.getHeader("token"));
+		SSOUser user = userUtil.getSsoUser(request.getHeader("token"));
 		if(Objects.isNull(user)){
 			throw new BusinessException(ErrorCode.TOKEN_NOT_FOUND);
 		}

+ 33 - 0
src/main/java/com/fdkankan/scene/util/UserUtil.java

@@ -0,0 +1,33 @@
+package com.fdkankan.scene.util;
+
+import cn.hutool.core.util.StrUtil;
+import com.alibaba.fastjson.JSONObject;
+import com.fdkankan.common.util.JwtUtil;
+import com.fdkankan.redis.util.RedisUtil;
+import com.fdkankan.web.user.SSOLoginStore;
+import com.fdkankan.web.user.SSOUser;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+@Component
+public class UserUtil {
+
+    public static final String LOGIN_USER = "4dkankan:login.username:%s:token:%s";
+
+    @Autowired
+    private RedisUtil redisUtil;
+
+
+    public SSOUser getSsoUser(String token) {
+        if (token != null && token.trim().length() > 0) {
+            String username = JwtUtil.getUsername(token);
+            String tokenKey = String.format(LOGIN_USER, username, token);
+            String objectValue = this.redisUtil.get(tokenKey);
+            SSOUser ssoUser = StrUtil.isNotEmpty(objectValue) ? JSONObject.parseObject(objectValue, SSOUser.class) : null;
+            if (ssoUser != null) {
+                return ssoUser;
+            }
+        }
+        return null;
+    }
+}