From 4f795e6a1c1e88080850fb01b1951f7e6f2c7079 Mon Sep 17 00:00:00 2001
From: liuhaonan <31457034@qq.com>
Date: 星期二, 20 九月 2022 16:50:25 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
sandu-common/src/main/java/com/sandu/common/security/token/JwtTokenProvider.java | 22 +++++++++++++---------
1 files changed, 13 insertions(+), 9 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 3113f19..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,33 +80,34 @@
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());
String key = String.format("%d_%d", loginUserInfo.getUserId(), loginUserInfo.getAdministratorType());
String redisToken = String.valueOf(redisService.get(key));
- if (redisToken == null || !token.equals(redisToken)) {
- throw new BusinessException("token鏃犳晥");
- }
+ //TODO 涓婄嚎璁板緱鏀瑰洖鏉�
+// if (redisToken == null || !token.equals(redisToken)) {
+// throw new BusinessException("token鏃犳晥");
+// }
return loginUserInfo;
} catch (io.jsonwebtoken.security.SecurityException | MalformedJwtException e) {
log.info("Invalid JWT signature.");
-// e.printStackTrace();
} catch (ExpiredJwtException e) {
log.info("Expired JWT token.");
-// e.printStackTrace();
} catch (UnsupportedJwtException | DecodingException e) {
log.info("Unsupported JWT token.");
-// e.printStackTrace();
} catch (IllegalArgumentException e) {
log.info("JWT token compact of handler are invalid.");
-// e.printStackTrace();
}
return null;
--
Gitblit v1.9.3