From d09acd7f7070b2c3060c31c84d894f2d7b812786 Mon Sep 17 00:00:00 2001
From: MercuryZ <zdmisif@126.com>
Date: 星期二, 20 九月 2022 16:49:51 +0800
Subject: [PATCH] 调整菜单权限数据保存位置

---
 sandu-common/src/main/java/com/sandu/common/security/token/JwtTokenProvider.java |   11 +++++++++--
 1 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/sandu-common/src/main/java/com/sandu/common/security/token/JwtTokenProvider.java b/sandu-common/src/main/java/com/sandu/common/security/token/JwtTokenProvider.java
index 3a9c392..fe01cb1 100644
--- a/sandu-common/src/main/java/com/sandu/common/security/token/JwtTokenProvider.java
+++ b/sandu-common/src/main/java/com/sandu/common/security/token/JwtTokenProvider.java
@@ -61,7 +61,8 @@
         Date expiration = new Date(now + properties.getTokenValidityInSeconds());
         String token = Jwts.builder()
                 .setSubject(loginUserInfo.getUserId().toString())
-                .claim(AUTHORITIES_KEY, authorities)
+                //鍘婚櫎token涓繚鐣欒彍鍗曟潈闄愭暟鎹�
+//                .claim(AUTHORITIES_KEY, authorities)
                 .claim(CREDENTIALS_KEY, loginUserInfo.getAccount())
                 .claim(ADMINISTRATOR_KEY, loginUserInfo.getAdministratorType())
                 .setExpiration(expiration)
@@ -69,6 +70,8 @@
                 .compact();
 
         String key = String.format("%d_%d", loginUserInfo.getUserId(), loginUserInfo.getAdministratorType());
+        //鏀逛负璁茶彍鍗曟潈闄愭暟鎹繚瀛樺湪redis涓�
+        redisService.set(String.format("%s_%s", AUTHORITIES_KEY, token), authorities);
         redisService.set(key, token, 2592000);
         return token;
     }
@@ -77,12 +80,16 @@
     public LoginUserInfo validateToken(String token) {
         try {
             RedisService redisService = SpringContextHolder.getBean(RedisService.class);
+            String authorities = String.valueOf(redisService.get(String.format("%s_%s", AUTHORITIES_KEY, token)));
 
             Claims claims = Jwts.parserBuilder().setSigningKey(key).build().parseClaimsJws(token).getBody();
             LoginUserInfo loginUserInfo = new LoginUserInfo();
             loginUserInfo.setUserId(Long.valueOf(claims.getSubject()));
             loginUserInfo.setAccount(String.valueOf(claims.get(CREDENTIALS_KEY)));
-            loginUserInfo.setPermission(claims.get(AUTHORITIES_KEY).toString());
+            //鍙栨秷浠巘oken涓彇鑿滃崟鏁版嵁
+//            loginUserInfo.setPermission(claims.get(AUTHORITIES_KEY).toString());
+            //浠巖edis涓幏鍙栬彍鍗曟暟鎹�
+            loginUserInfo.setPermission(authorities);
             loginUserInfo.setAdministratorType(Integer.parseInt(claims.get(ADMINISTRATOR_KEY).toString()));
             loginUserInfo.setToken(token);
             loginUserInfo.setStatus(AdminStatusStatus.NORMAL.getCode());

--
Gitblit v1.9.3