From 6391776a0838d584e33a9a3e371abd443b67c0ca Mon Sep 17 00:00:00 2001 From: fengshuonan Date: Mon, 24 May 2021 11:39:48 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=907.0.4=E3=80=91=E3=80=90jwt=E3=80=91?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=B8=80=E4=B8=AA=E5=B7=A5=E5=8E=82=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/exception/enums/JwtExceptionEnum.java | 7 +++- .../jwt/factory/JwtTokenApiFactory.java | 38 +++++++++++++++++++ 2 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 kernel-d-jwt/jwt-sdk/src/main/java/cn/stylefeng/roses/kernel/jwt/factory/JwtTokenApiFactory.java diff --git a/kernel-d-jwt/jwt-api/src/main/java/cn/stylefeng/roses/kernel/jwt/api/exception/enums/JwtExceptionEnum.java b/kernel-d-jwt/jwt-api/src/main/java/cn/stylefeng/roses/kernel/jwt/api/exception/enums/JwtExceptionEnum.java index f48fd760e..deca266f6 100644 --- a/kernel-d-jwt/jwt-api/src/main/java/cn/stylefeng/roses/kernel/jwt/api/exception/enums/JwtExceptionEnum.java +++ b/kernel-d-jwt/jwt-api/src/main/java/cn/stylefeng/roses/kernel/jwt/api/exception/enums/JwtExceptionEnum.java @@ -46,7 +46,12 @@ public enum JwtExceptionEnum implements AbstractExceptionEnum { /** * jwt过期了 */ - JWT_EXPIRED_ERROR(RuleConstants.BUSINESS_ERROR_TYPE_CODE + JwtConstants.JWT_EXCEPTION_STEP_CODE + "02", "jwt过期了!jwt为:{}"); + JWT_EXPIRED_ERROR(RuleConstants.BUSINESS_ERROR_TYPE_CODE + JwtConstants.JWT_EXCEPTION_STEP_CODE + "02", "jwt过期了!jwt为:{}"), + + /** + * jwt参数为空 + */ + JWT_PARAM_EMPTY(RuleConstants.BUSINESS_ERROR_TYPE_CODE + JwtConstants.JWT_EXCEPTION_STEP_CODE + "03", "jwt解析时,秘钥或过期时间为空"); /** * 错误编码 diff --git a/kernel-d-jwt/jwt-sdk/src/main/java/cn/stylefeng/roses/kernel/jwt/factory/JwtTokenApiFactory.java b/kernel-d-jwt/jwt-sdk/src/main/java/cn/stylefeng/roses/kernel/jwt/factory/JwtTokenApiFactory.java new file mode 100644 index 000000000..9cd13c3e8 --- /dev/null +++ b/kernel-d-jwt/jwt-sdk/src/main/java/cn/stylefeng/roses/kernel/jwt/factory/JwtTokenApiFactory.java @@ -0,0 +1,38 @@ +package cn.stylefeng.roses.kernel.jwt.factory; + +import cn.hutool.core.util.ObjectUtil; +import cn.stylefeng.roses.kernel.jwt.JwtTokenOperator; +import cn.stylefeng.roses.kernel.jwt.api.JwtApi; +import cn.stylefeng.roses.kernel.jwt.api.exception.JwtException; +import cn.stylefeng.roses.kernel.jwt.api.exception.enums.JwtExceptionEnum; +import cn.stylefeng.roses.kernel.jwt.api.pojo.config.JwtConfig; + + +/** + * jwt token操作工具的生产工厂 + * + * @author fengshuonan + * @date 2021/1/21 18:15 + */ +public class JwtTokenApiFactory { + + /** + * 根据jwt秘钥和过期时间,获取jwt操作的工具 + * + * @author fengshuonan + * @date 2021/1/21 18:16 + */ + public static JwtApi createJwtApi(String jwtSecret, Integer expiredSeconds) { + + if (ObjectUtil.hasEmpty(jwtSecret, expiredSeconds)) { + throw new JwtException(JwtExceptionEnum.JWT_PARAM_EMPTY); + } + + JwtConfig jwtConfig = new JwtConfig(); + jwtConfig.setJwtSecret(jwtSecret); + jwtConfig.setExpiredSeconds(expiredSeconds.longValue()); + + return new JwtTokenOperator(jwtConfig); + } + +}