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); + } + +}