From 7b62b050cb0d5d5af724837ab1834c22e9cdeee1 Mon Sep 17 00:00:00 2001 From: fengshuonan Date: Wed, 12 Jul 2023 11:54:43 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=908.0=E3=80=91=E3=80=90auth=E3=80=91?= =?UTF-8?q?=E7=BB=8F=E8=BF=87=E5=88=9D=E5=A7=8B=E5=8C=96=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E5=90=8E=EF=BC=8C=E6=9B=B4=E6=96=B0jwt=E7=A7=98=E9=92=A5?= =?UTF-8?q?=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kernel/auth/jwt/AuthJwtTokenService.java | 17 ++++++++++++++++- .../stylefeng/roses/kernel/jwt/api/JwtApi.java | 9 +++++++++ .../roses/kernel/jwt/JwtTokenOperator.java | 7 ++++++- 3 files changed, 31 insertions(+), 2 deletions(-) diff --git a/kernel-d-auth/auth-sdk/src/main/java/cn/stylefeng/roses/kernel/auth/jwt/AuthJwtTokenService.java b/kernel-d-auth/auth-sdk/src/main/java/cn/stylefeng/roses/kernel/auth/jwt/AuthJwtTokenService.java index 1098cd167..4c75fc980 100644 --- a/kernel-d-auth/auth-sdk/src/main/java/cn/stylefeng/roses/kernel/auth/jwt/AuthJwtTokenService.java +++ b/kernel-d-auth/auth-sdk/src/main/java/cn/stylefeng/roses/kernel/auth/jwt/AuthJwtTokenService.java @@ -7,7 +7,9 @@ import cn.hutool.core.date.DateUtil; import cn.stylefeng.roses.kernel.auth.api.AuthJwtTokenApi; import cn.stylefeng.roses.kernel.auth.api.expander.AuthConfigExpander; import cn.stylefeng.roses.kernel.auth.api.pojo.payload.DefaultJwtPayload; +import cn.stylefeng.roses.kernel.config.api.ConfigInitCallbackApi; import cn.stylefeng.roses.kernel.jwt.api.JwtApi; +import cn.stylefeng.roses.kernel.jwt.api.pojo.config.JwtConfig; import io.jsonwebtoken.Jwts; import io.jsonwebtoken.SignatureAlgorithm; import org.springframework.stereotype.Service; @@ -23,7 +25,7 @@ import java.util.Map; * @since 2023/5/9 10:05 */ @Service -public class AuthJwtTokenService implements AuthJwtTokenApi { +public class AuthJwtTokenService implements AuthJwtTokenApi, ConfigInitCallbackApi { @Resource private JwtApi jwtApi; @@ -53,4 +55,17 @@ public class AuthJwtTokenService implements AuthJwtTokenApi { return BeanUtil.toBeanIgnoreError(jwtPayload, DefaultJwtPayload.class); } + @Override + public void initBefore() { + + } + + @Override + public void initAfter() { + JwtConfig jwtConfig = new JwtConfig(); + jwtConfig.setJwtSecret(AuthConfigExpander.getAuthJwtSecret()); + jwtConfig.setExpiredSeconds(AuthConfigExpander.getAuthJwtTimeoutSeconds()); + jwtApi.updateJwtConfig(jwtConfig); + } + } diff --git a/kernel-d-jwt/jwt-api/src/main/java/cn/stylefeng/roses/kernel/jwt/api/JwtApi.java b/kernel-d-jwt/jwt-api/src/main/java/cn/stylefeng/roses/kernel/jwt/api/JwtApi.java index 75749201c..a29789bc3 100644 --- a/kernel-d-jwt/jwt-api/src/main/java/cn/stylefeng/roses/kernel/jwt/api/JwtApi.java +++ b/kernel-d-jwt/jwt-api/src/main/java/cn/stylefeng/roses/kernel/jwt/api/JwtApi.java @@ -25,6 +25,7 @@ package cn.stylefeng.roses.kernel.jwt.api; import cn.stylefeng.roses.kernel.jwt.api.exception.JwtException; +import cn.stylefeng.roses.kernel.jwt.api.pojo.config.JwtConfig; import java.util.Map; @@ -98,4 +99,12 @@ public interface JwtApi { */ boolean validateTokenIsExpired(String token); + /** + * 更新jwt的配置 + * + * @author fengshuonan + * @since 2023/7/12 11:34 + */ + void updateJwtConfig(JwtConfig jwtConfig); + } diff --git a/kernel-d-jwt/jwt-sdk/src/main/java/cn/stylefeng/roses/kernel/jwt/JwtTokenOperator.java b/kernel-d-jwt/jwt-sdk/src/main/java/cn/stylefeng/roses/kernel/jwt/JwtTokenOperator.java index d93b6c010..f32ac0cf3 100644 --- a/kernel-d-jwt/jwt-sdk/src/main/java/cn/stylefeng/roses/kernel/jwt/JwtTokenOperator.java +++ b/kernel-d-jwt/jwt-sdk/src/main/java/cn/stylefeng/roses/kernel/jwt/JwtTokenOperator.java @@ -49,7 +49,7 @@ import static cn.stylefeng.roses.kernel.jwt.api.exception.enums.JwtExceptionEnum */ public class JwtTokenOperator implements JwtApi { - private final JwtConfig jwtConfig; + private JwtConfig jwtConfig; public JwtTokenOperator(JwtConfig jwtConfig) { this.jwtConfig = jwtConfig; @@ -116,4 +116,9 @@ public class JwtTokenOperator implements JwtApi { } } + @Override + public void updateJwtConfig(JwtConfig jwtConfig) { + this.jwtConfig = jwtConfig; + } + }