From c7621f90cb8029b9d4606df227cf524424559ad4 Mon Sep 17 00:00:00 2001 From: haoxr <1490493387@qq.com> Date: Tue, 12 Nov 2024 22:48:30 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9EJWT=E5=88=B7=E6=96=B0?= =?UTF-8?q?token=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../boot/core/security/util/JwtUtils.java | 30 +++++++------------ src/main/resources/application-dev.yml | 3 +- src/main/resources/application-prod.yml | 7 +++-- 3 files changed, 17 insertions(+), 23 deletions(-) diff --git a/src/main/java/com/youlai/boot/core/security/util/JwtUtils.java b/src/main/java/com/youlai/boot/core/security/util/JwtUtils.java index 853d68a6..b02171dc 100644 --- a/src/main/java/com/youlai/boot/core/security/util/JwtUtils.java +++ b/src/main/java/com/youlai/boot/core/security/util/JwtUtils.java @@ -32,13 +32,6 @@ import java.util.stream.Collectors; @Component public class JwtUtils { - private static StringRedisTemplate redisTemplate; - - @Autowired - public JwtUtils(StringRedisTemplate redisTemplate) { - JwtUtils.redisTemplate = redisTemplate; - } - /** * JWT 加解密使用的密钥 @@ -56,22 +49,22 @@ public class JwtUtils { */ private static int refreshTokenExpiration; + private static StringRedisTemplate redisTemplate; - @Value("${security.jwt.key}") - public void setKey(String key) { + + + @Autowired + public JwtUtils( + @Value("${security.jwt.key}") String key, + @Value("${security.jwt.access-token-expiration}") int accessTokenExpiration, + @Value("${security.jwt.refresh-token-expiration}") int refreshTokenExpiration, + StringRedisTemplate redisTemplate + ) { JwtUtils.key = key.getBytes(); - } - - @Value("${security.jwt.access-token-expiration}") - public void setAccessTokenExpiration(Integer accessTokenExpiration) { JwtUtils.accessTokenExpiration = accessTokenExpiration; - } - - @Value("${security.jwt.refresh-token-expiration}") - public void setRefreshTokenExpiration(Integer refreshTokenExpiration) { JwtUtils.refreshTokenExpiration = refreshTokenExpiration; + JwtUtils.redisTemplate = redisTemplate; } - /** * 生成访问令牌(JWT Token) * @@ -86,7 +79,6 @@ public class JwtUtils { return createToken(authentication, refreshTokenExpiration); } - /** * 生成 JWT Token * diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index 6548cd20..6869b154 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -73,8 +73,6 @@ mybatis-plus: # 这个配置会将执行的sql打印出来,在开发或测试的时候可以用 log-impl: org.apache.ibatis.logging.stdout.StdOutImpl - - # 安全配置 security: jwt: @@ -94,6 +92,7 @@ security: - /swagger-ui/** - /swagger-ui.html - /api/v1/auth/captcha + - /api/v1/auth/refresh-token - /ws/** # 文件存储配置 diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml index 44f27dc3..cd66de2c 100644 --- a/src/main/resources/application-prod.yml +++ b/src/main/resources/application-prod.yml @@ -63,8 +63,10 @@ security: jwt: # JWT 秘钥 key: SecretKey012345678901234567890123456789012345678901234567890123456789 - # JWT 有效期(单位:秒) - ttl: 7200 + # 访问令牌 有效期(单位:秒),默认 1 小时 + access-token-expiration: 3600 + # 刷新令牌有效期(单位:秒),默认 7 天 + refresh-token-expiration: 604800 # 白名单列表 ignore-urls: - /v3/api-docs/** @@ -75,6 +77,7 @@ security: - /swagger-ui/** - /swagger-ui.html - /api/v1/auth/captcha + - /api/v1/auth/refresh-token - /ws/** # 文件存储配置