mirror of https://gitee.com/stylefeng/roses
【7.6.0】【框架改造】【auth】【jwt】减小jwt的职责,jwt模块保持独立
parent
cd146aeaf1
commit
53b4123094
|
@ -22,42 +22,36 @@
|
|||
* 5.在修改包名,模块名称,项目代码等时,请注明软件出处 https://gitee.com/stylefeng/guns
|
||||
* 6.若您的项目无法满足以上几点,可申请商业授权
|
||||
*/
|
||||
package cn.stylefeng.roses.kernel.jwt.starter;
|
||||
package cn.stylefeng.roses.kernel.auth.api;
|
||||
|
||||
import cn.stylefeng.roses.kernel.jwt.JwtTokenOperator;
|
||||
import cn.stylefeng.roses.kernel.jwt.api.JwtApi;
|
||||
import cn.stylefeng.roses.kernel.jwt.api.expander.JwtConfigExpander;
|
||||
import cn.stylefeng.roses.kernel.jwt.api.pojo.config.JwtConfig;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import cn.stylefeng.roses.kernel.auth.api.pojo.payload.DefaultJwtPayload;
|
||||
|
||||
/**
|
||||
* jwt的自动配置
|
||||
* Auth模块对jwt的使用的封装
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @since 2020/12/1 14:34
|
||||
* @since 2023/5/9 10:04
|
||||
*/
|
||||
@Configuration
|
||||
public class GunsJwtAutoConfiguration {
|
||||
public interface AuthJwtTokenApi {
|
||||
|
||||
/**
|
||||
* jwt操作工具类的配置
|
||||
* 生成token,用默认的payload格式
|
||||
*
|
||||
* @param defaultJwtPayload jwt的载体信息
|
||||
* @return jwt token
|
||||
* @author fengshuonan
|
||||
* @since 2020/12/1 14:40
|
||||
* @since 2020/10/21 11:38
|
||||
*/
|
||||
@Bean
|
||||
@ConditionalOnMissingBean(JwtApi.class)
|
||||
public JwtApi jwtApi() {
|
||||
String generateTokenDefaultPayload(DefaultJwtPayload defaultJwtPayload);
|
||||
|
||||
JwtConfig jwtConfig = new JwtConfig();
|
||||
|
||||
// 从系统配置表中读取配置
|
||||
jwtConfig.setJwtSecret(JwtConfigExpander.getJwtSecret());
|
||||
jwtConfig.setExpiredSeconds(JwtConfigExpander.getJwtTimeoutSeconds());
|
||||
|
||||
return new JwtTokenOperator(jwtConfig);
|
||||
}
|
||||
/**
|
||||
* 获取jwt的payload(限定默认格式)
|
||||
*
|
||||
* @param token jwt的token
|
||||
* @return 返回默认格式的payload
|
||||
* @author fengshuonan
|
||||
* @since 2020/10/21 11:51
|
||||
*/
|
||||
DefaultJwtPayload getDefaultPayload(String token);
|
||||
|
||||
}
|
|
@ -29,7 +29,7 @@ import cn.stylefeng.roses.kernel.auth.api.pojo.auth.LoginRequest;
|
|||
import cn.stylefeng.roses.kernel.auth.api.pojo.auth.LoginResponse;
|
||||
import cn.stylefeng.roses.kernel.auth.api.pojo.auth.LoginWithTokenRequest;
|
||||
import cn.stylefeng.roses.kernel.auth.api.pojo.login.LoginUser;
|
||||
import cn.stylefeng.roses.kernel.jwt.api.pojo.payload.DefaultJwtPayload;
|
||||
import cn.stylefeng.roses.kernel.auth.api.pojo.payload.DefaultJwtPayload;
|
||||
|
||||
/**
|
||||
* 认证服务的接口,包括基本的登录退出操作和校验token等操作
|
||||
|
|
|
@ -22,10 +22,10 @@
|
|||
* 5.在修改包名,模块名称,项目代码等时,请注明软件出处 https://gitee.com/stylefeng/guns
|
||||
* 6.若您的项目无法满足以上几点,可申请商业授权
|
||||
*/
|
||||
package cn.stylefeng.roses.kernel.jwt.api.context;
|
||||
package cn.stylefeng.roses.kernel.auth.api.context;
|
||||
|
||||
import cn.hutool.extra.spring.SpringUtil;
|
||||
import cn.stylefeng.roses.kernel.jwt.api.JwtApi;
|
||||
import cn.stylefeng.roses.kernel.auth.api.AuthJwtTokenApi;
|
||||
|
||||
/**
|
||||
* Jwt工具的context,获取容器中的jwt工具类
|
||||
|
@ -33,7 +33,7 @@ import cn.stylefeng.roses.kernel.jwt.api.JwtApi;
|
|||
* @author fengshuonan
|
||||
* @since 2020/10/21 14:07
|
||||
*/
|
||||
public class JwtContext {
|
||||
public class AuthJwtContext {
|
||||
|
||||
/**
|
||||
* 获取jwt操作接口
|
||||
|
@ -41,8 +41,8 @@ public class JwtContext {
|
|||
* @author fengshuonan
|
||||
* @since 2020/10/21 14:07
|
||||
*/
|
||||
public static JwtApi me() {
|
||||
return SpringUtil.getBean(JwtApi.class);
|
||||
public static AuthJwtTokenApi me() {
|
||||
return SpringUtil.getBean(AuthJwtTokenApi.class);
|
||||
}
|
||||
|
||||
}
|
|
@ -22,7 +22,7 @@
|
|||
* 5.在修改包名,模块名称,项目代码等时,请注明软件出处 https://gitee.com/stylefeng/guns
|
||||
* 6.若您的项目无法满足以上几点,可申请商业授权
|
||||
*/
|
||||
package cn.stylefeng.roses.kernel.jwt.api.expander;
|
||||
package cn.stylefeng.roses.kernel.auth.api.expander;
|
||||
|
||||
import cn.hutool.core.util.RandomUtil;
|
||||
import cn.stylefeng.roses.kernel.config.api.context.ConfigContext;
|
|
@ -22,7 +22,7 @@
|
|||
* 5.在修改包名,模块名称,项目代码等时,请注明软件出处 https://gitee.com/stylefeng/guns
|
||||
* 6.若您的项目无法满足以上几点,可申请商业授权
|
||||
*/
|
||||
package cn.stylefeng.roses.kernel.jwt.api.pojo.payload;
|
||||
package cn.stylefeng.roses.kernel.auth.api.pojo.payload;
|
||||
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import lombok.Data;
|
|
@ -40,6 +40,7 @@ import cn.stylefeng.roses.kernel.auth.api.SsoServerApi;
|
|||
import cn.stylefeng.roses.kernel.auth.api.TempSecretApi;
|
||||
import cn.stylefeng.roses.kernel.auth.api.constants.AuthConstants;
|
||||
import cn.stylefeng.roses.kernel.auth.api.constants.LoginCacheConstants;
|
||||
import cn.stylefeng.roses.kernel.auth.api.context.AuthJwtContext;
|
||||
import cn.stylefeng.roses.kernel.auth.api.context.LoginContext;
|
||||
import cn.stylefeng.roses.kernel.auth.api.enums.SsoClientTypeEnum;
|
||||
import cn.stylefeng.roses.kernel.auth.api.exception.AuthException;
|
||||
|
@ -51,6 +52,7 @@ import cn.stylefeng.roses.kernel.auth.api.pojo.auth.LoginRequest;
|
|||
import cn.stylefeng.roses.kernel.auth.api.pojo.auth.LoginResponse;
|
||||
import cn.stylefeng.roses.kernel.auth.api.pojo.auth.LoginWithTokenRequest;
|
||||
import cn.stylefeng.roses.kernel.auth.api.pojo.login.LoginUser;
|
||||
import cn.stylefeng.roses.kernel.auth.api.pojo.payload.DefaultJwtPayload;
|
||||
import cn.stylefeng.roses.kernel.auth.api.pojo.sso.SsoLoginCodeRequest;
|
||||
import cn.stylefeng.roses.kernel.auth.api.pojo.sso.SsoProperties;
|
||||
import cn.stylefeng.roses.kernel.cache.api.CacheOperatorApi;
|
||||
|
@ -58,11 +60,10 @@ import cn.stylefeng.roses.kernel.demo.expander.DemoConfigExpander;
|
|||
import cn.stylefeng.roses.kernel.dsctn.api.constants.DatasourceContainerConstants;
|
||||
import cn.stylefeng.roses.kernel.dsctn.api.context.CurrentDataSourceContext;
|
||||
import cn.stylefeng.roses.kernel.jwt.JwtTokenOperator;
|
||||
import cn.stylefeng.roses.kernel.jwt.api.context.JwtContext;
|
||||
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;
|
||||
import cn.stylefeng.roses.kernel.jwt.api.pojo.payload.DefaultJwtPayload;
|
||||
import cn.stylefeng.roses.kernel.log.api.LoginLogServiceApi;
|
||||
import cn.stylefeng.roses.kernel.message.api.expander.WebSocketConfigExpander;
|
||||
import cn.stylefeng.roses.kernel.rule.constants.RuleConstants;
|
||||
|
@ -130,6 +131,9 @@ public class AuthServiceImpl implements AuthServiceApi {
|
|||
@Resource(name = "caClientTokenCacheApi")
|
||||
private CacheOperatorApi<String> caClientTokenCacheApi;
|
||||
|
||||
@Resource
|
||||
private JwtApi jwtApi;
|
||||
|
||||
@Override
|
||||
public LoginResponse login(LoginRequest loginRequest) {
|
||||
return loginAction(loginRequest, true, null);
|
||||
|
@ -225,10 +229,10 @@ public class AuthServiceImpl implements AuthServiceApi {
|
|||
public DefaultJwtPayload validateToken(String token) throws AuthException {
|
||||
try {
|
||||
// 1. 先校验jwt token本身是否有问题
|
||||
JwtContext.me().validateTokenWithException(token);
|
||||
jwtApi.validateTokenWithException(token);
|
||||
|
||||
// 2. 获取jwt的payload
|
||||
DefaultJwtPayload defaultPayload = JwtContext.me().getDefaultPayload(token);
|
||||
DefaultJwtPayload defaultPayload = AuthJwtContext.me().getDefaultPayload(token);
|
||||
|
||||
// 3. 如果是7天免登陆,则不校验session过期
|
||||
if (defaultPayload.getRememberMe()) {
|
||||
|
@ -412,7 +416,7 @@ public class AuthServiceImpl implements AuthServiceApi {
|
|||
|
||||
// 9. 生成用户的token
|
||||
DefaultJwtPayload defaultJwtPayload = new DefaultJwtPayload(loginUser.getUserId(), loginUser.getAccount(), loginRequest.getRememberMe(), caToken, loginRequest.getTenantCode());
|
||||
String jwtToken = JwtContext.me().generateTokenDefaultPayload(defaultJwtPayload);
|
||||
String jwtToken = AuthJwtContext.me().generateTokenDefaultPayload(defaultJwtPayload);
|
||||
loginUser.setToken(jwtToken);
|
||||
|
||||
// 如果包含租户编码,则放到loginUser中
|
||||
|
|
|
@ -0,0 +1,56 @@
|
|||
package cn.stylefeng.roses.kernel.auth.jwt;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.convert.Convert;
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.stylefeng.roses.kernel.auth.api.AuthJwtTokenApi;
|
||||
import cn.stylefeng.roses.kernel.auth.api.expander.JwtConfigExpander;
|
||||
import cn.stylefeng.roses.kernel.auth.api.pojo.payload.DefaultJwtPayload;
|
||||
import cn.stylefeng.roses.kernel.jwt.api.JwtApi;
|
||||
import io.jsonwebtoken.Jwts;
|
||||
import io.jsonwebtoken.SignatureAlgorithm;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Date;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* Auth模块对JWT token的使用
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @since 2023/5/9 10:05
|
||||
*/
|
||||
@Service
|
||||
public class AuthJwtTokenService implements AuthJwtTokenApi {
|
||||
|
||||
@Resource
|
||||
private JwtApi jwtApi;
|
||||
|
||||
@Override
|
||||
public String generateTokenDefaultPayload(DefaultJwtPayload defaultJwtPayload) {
|
||||
|
||||
// 计算过期时间
|
||||
DateTime expirationDate = DateUtil.offsetSecond(new Date(), Convert.toInt(JwtConfigExpander.getJwtTimeoutSeconds()));
|
||||
|
||||
// 设置过期时间
|
||||
defaultJwtPayload.setExpirationDate(expirationDate.getTime());
|
||||
|
||||
// 构造jwt token
|
||||
return Jwts.builder()
|
||||
.setClaims(BeanUtil.beanToMap(defaultJwtPayload))
|
||||
.setSubject(defaultJwtPayload.getUserId().toString())
|
||||
.setIssuedAt(new Date())
|
||||
.setExpiration(expirationDate)
|
||||
.signWith(SignatureAlgorithm.HS512, JwtConfigExpander.getJwtSecret())
|
||||
.compact();
|
||||
}
|
||||
|
||||
@Override
|
||||
public DefaultJwtPayload getDefaultPayload(String token) {
|
||||
Map<String, Object> jwtPayload = jwtApi.getJwtPayloadClaims(token);
|
||||
return BeanUtil.toBeanIgnoreError(jwtPayload, DefaultJwtPayload.class);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,37 @@
|
|||
package cn.stylefeng.roses.kernel.auth.starter;
|
||||
|
||||
import cn.stylefeng.roses.kernel.auth.api.expander.JwtConfigExpander;
|
||||
import cn.stylefeng.roses.kernel.jwt.JwtTokenOperator;
|
||||
import cn.stylefeng.roses.kernel.jwt.api.JwtApi;
|
||||
import cn.stylefeng.roses.kernel.jwt.api.pojo.config.JwtConfig;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
/**
|
||||
* Auth模块对jwt的封装
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @since 2023/5/9 10:07
|
||||
*/
|
||||
@Configuration
|
||||
public class AuthJwtConfigAutoConfiguration {
|
||||
|
||||
/**
|
||||
* jwt操作工具类的配置
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @since 2020/12/1 14:40
|
||||
*/
|
||||
@Bean
|
||||
public JwtApi jwtApi() {
|
||||
|
||||
JwtConfig jwtConfig = new JwtConfig();
|
||||
|
||||
// 从系统配置表中读取配置
|
||||
jwtConfig.setJwtSecret(JwtConfigExpander.getJwtSecret());
|
||||
jwtConfig.setExpiredSeconds(JwtConfigExpander.getJwtTimeoutSeconds());
|
||||
|
||||
return new JwtTokenOperator(jwtConfig);
|
||||
}
|
||||
|
||||
}
|
|
@ -17,13 +17,6 @@
|
|||
|
||||
<dependencies>
|
||||
|
||||
<!--config模块的api-->
|
||||
<dependency>
|
||||
<groupId>cn.stylefeng.roses</groupId>
|
||||
<artifactId>config-api</artifactId>
|
||||
<version>${roses.version}</version>
|
||||
</dependency>
|
||||
|
||||
<!--jwt token-->
|
||||
<dependency>
|
||||
<groupId>io.jsonwebtoken</groupId>
|
||||
|
|
|
@ -25,7 +25,6 @@
|
|||
package cn.stylefeng.roses.kernel.jwt.api;
|
||||
|
||||
import cn.stylefeng.roses.kernel.jwt.api.exception.JwtException;
|
||||
import cn.stylefeng.roses.kernel.jwt.api.pojo.payload.DefaultJwtPayload;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
|
@ -47,16 +46,6 @@ public interface JwtApi {
|
|||
*/
|
||||
String generateToken(Map<String, Object> payload);
|
||||
|
||||
/**
|
||||
* 生成token,用默认的payload格式
|
||||
*
|
||||
* @param defaultJwtPayload jwt的载体信息
|
||||
* @return jwt token
|
||||
* @author fengshuonan
|
||||
* @since 2020/10/21 11:38
|
||||
*/
|
||||
String generateTokenDefaultPayload(DefaultJwtPayload defaultJwtPayload);
|
||||
|
||||
/**
|
||||
* 获取jwt的payload(通用的)
|
||||
*
|
||||
|
@ -67,16 +56,6 @@ public interface JwtApi {
|
|||
*/
|
||||
Map<String, Object> getJwtPayloadClaims(String token);
|
||||
|
||||
/**
|
||||
* 获取jwt的payload(限定默认格式)
|
||||
*
|
||||
* @param token jwt的token
|
||||
* @return 返回默认格式的payload
|
||||
* @author fengshuonan
|
||||
* @since 2020/10/21 11:51
|
||||
*/
|
||||
DefaultJwtPayload getDefaultPayload(String token);
|
||||
|
||||
/**
|
||||
* 校验jwt token是否正确
|
||||
* <p>
|
||||
|
|
|
@ -24,7 +24,6 @@
|
|||
*/
|
||||
package cn.stylefeng.roses.kernel.jwt;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.convert.Convert;
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
|
@ -32,7 +31,6 @@ 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;
|
||||
import cn.stylefeng.roses.kernel.jwt.api.pojo.payload.DefaultJwtPayload;
|
||||
import io.jsonwebtoken.Claims;
|
||||
import io.jsonwebtoken.ExpiredJwtException;
|
||||
import io.jsonwebtoken.Jwts;
|
||||
|
@ -72,25 +70,6 @@ public class JwtTokenOperator implements JwtApi {
|
|||
.compact();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String generateTokenDefaultPayload(DefaultJwtPayload defaultJwtPayload) {
|
||||
|
||||
// 计算过期时间
|
||||
DateTime expirationDate = DateUtil.offsetSecond(new Date(), Convert.toInt(jwtConfig.getExpiredSeconds()));
|
||||
|
||||
// 设置过期时间
|
||||
defaultJwtPayload.setExpirationDate(expirationDate.getTime());
|
||||
|
||||
// 构造jwt token
|
||||
return Jwts.builder()
|
||||
.setClaims(BeanUtil.beanToMap(defaultJwtPayload))
|
||||
.setSubject(defaultJwtPayload.getUserId().toString())
|
||||
.setIssuedAt(new Date())
|
||||
.setExpiration(expirationDate)
|
||||
.signWith(SignatureAlgorithm.HS512, jwtConfig.getJwtSecret())
|
||||
.compact();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Claims getJwtPayloadClaims(String token) {
|
||||
return Jwts.parser()
|
||||
|
@ -99,12 +78,6 @@ public class JwtTokenOperator implements JwtApi {
|
|||
.getBody();
|
||||
}
|
||||
|
||||
@Override
|
||||
public DefaultJwtPayload getDefaultPayload(String token) {
|
||||
Map<String, Object> jwtPayload = getJwtPayloadClaims(token);
|
||||
return BeanUtil.toBeanIgnoreError(jwtPayload, DefaultJwtPayload.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean validateToken(String token) {
|
||||
try {
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
jwt功能的spring boot自动加载模块
|
|
@ -1,29 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<parent>
|
||||
<groupId>cn.stylefeng.roses</groupId>
|
||||
<artifactId>kernel-d-jwt</artifactId>
|
||||
<version>7.6.0</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<artifactId>jwt-spring-boot-starter</artifactId>
|
||||
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<dependencies>
|
||||
|
||||
<!--jwt的sdk-->
|
||||
<dependency>
|
||||
<groupId>cn.stylefeng.roses</groupId>
|
||||
<artifactId>jwt-sdk</artifactId>
|
||||
<version>${roses.version}</version>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
</project>
|
|
@ -1,2 +0,0 @@
|
|||
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
|
||||
cn.stylefeng.roses.kernel.jwt.starter.GunsJwtAutoConfiguration
|
|
@ -18,7 +18,6 @@
|
|||
<modules>
|
||||
<module>jwt-api</module>
|
||||
<module>jwt-sdk</module>
|
||||
<module>jwt-spring-boot-starter</module>
|
||||
</modules>
|
||||
|
||||
<dependencies>
|
||||
|
|
|
@ -37,7 +37,7 @@
|
|||
<!--jwt模块的sdk-->
|
||||
<dependency>
|
||||
<groupId>cn.stylefeng.roses</groupId>
|
||||
<artifactId>jwt-sdk</artifactId>
|
||||
<artifactId>auth-api</artifactId>
|
||||
<version>${roses.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
package cn.stylefeng.roses.kernel.socket.business.websocket.server;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.stylefeng.roses.kernel.jwt.api.context.JwtContext;
|
||||
import cn.stylefeng.roses.kernel.jwt.api.pojo.payload.DefaultJwtPayload;
|
||||
import cn.stylefeng.roses.kernel.auth.api.context.AuthJwtContext;
|
||||
import cn.stylefeng.roses.kernel.auth.api.pojo.payload.DefaultJwtPayload;
|
||||
import cn.stylefeng.roses.kernel.socket.api.enums.ClientMessageTypeEnum;
|
||||
import cn.stylefeng.roses.kernel.socket.api.enums.ServerMessageTypeEnum;
|
||||
import cn.stylefeng.roses.kernel.socket.api.enums.SystemMessageTypeEnum;
|
||||
|
@ -46,7 +46,7 @@ public class WebSocketServer {
|
|||
String userId = null;
|
||||
try {
|
||||
// 解析用户信息
|
||||
DefaultJwtPayload defaultPayload = JwtContext.me().getDefaultPayload(token);
|
||||
DefaultJwtPayload defaultPayload = AuthJwtContext.me().getDefaultPayload(token);
|
||||
userId = defaultPayload.getUserId().toString();
|
||||
} catch (io.jsonwebtoken.JwtException e) {
|
||||
try {
|
||||
|
|
|
@ -8,6 +8,7 @@ import cn.hutool.core.util.ObjectUtil;
|
|||
import cn.hutool.core.util.RandomUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.stylefeng.roses.kernel.auth.api.SessionManagerApi;
|
||||
import cn.stylefeng.roses.kernel.auth.api.context.AuthJwtContext;
|
||||
import cn.stylefeng.roses.kernel.auth.api.context.LoginContext;
|
||||
import cn.stylefeng.roses.kernel.auth.api.exception.AuthException;
|
||||
import cn.stylefeng.roses.kernel.auth.api.exception.enums.AuthExceptionEnum;
|
||||
|
@ -16,6 +17,7 @@ import cn.stylefeng.roses.kernel.auth.api.password.PasswordStoredEncryptApi;
|
|||
import cn.stylefeng.roses.kernel.auth.api.pojo.auth.LoginRequest;
|
||||
import cn.stylefeng.roses.kernel.auth.api.pojo.auth.LoginResponse;
|
||||
import cn.stylefeng.roses.kernel.auth.api.pojo.login.LoginUser;
|
||||
import cn.stylefeng.roses.kernel.auth.api.pojo.payload.DefaultJwtPayload;
|
||||
import cn.stylefeng.roses.kernel.cache.api.CacheOperatorApi;
|
||||
import cn.stylefeng.roses.kernel.customer.api.OldPasswordValidateApi;
|
||||
import cn.stylefeng.roses.kernel.customer.api.constants.CustomerConstants;
|
||||
|
@ -37,8 +39,6 @@ import cn.stylefeng.roses.kernel.email.api.pojo.SendMailParam;
|
|||
import cn.stylefeng.roses.kernel.file.api.FileInfoApi;
|
||||
import cn.stylefeng.roses.kernel.file.api.FileOperatorApi;
|
||||
import cn.stylefeng.roses.kernel.file.api.pojo.response.SysFileInfoResponse;
|
||||
import cn.stylefeng.roses.kernel.jwt.api.context.JwtContext;
|
||||
import cn.stylefeng.roses.kernel.jwt.api.pojo.payload.DefaultJwtPayload;
|
||||
import cn.stylefeng.roses.kernel.log.api.LoginLogServiceApi;
|
||||
import cn.stylefeng.roses.kernel.rule.enums.StatusEnum;
|
||||
import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum;
|
||||
|
@ -202,7 +202,7 @@ public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, Customer> i
|
|||
|
||||
// 生成用户的token
|
||||
DefaultJwtPayload defaultJwtPayload = new DefaultJwtPayload(loginUser.getUserId(), loginUser.getAccount(), loginRequest.getRememberMe(), null, null);
|
||||
String jwtToken = JwtContext.me().generateTokenDefaultPayload(defaultJwtPayload);
|
||||
String jwtToken = AuthJwtContext.me().generateTokenDefaultPayload(defaultJwtPayload);
|
||||
loginUser.setToken(jwtToken);
|
||||
|
||||
synchronized (SESSION_OPERATE_LOCK) {
|
||||
|
|
|
@ -31,6 +31,7 @@ import cn.hutool.core.util.ObjectUtil;
|
|||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.stylefeng.roses.kernel.auth.api.SessionManagerApi;
|
||||
import cn.stylefeng.roses.kernel.auth.api.constants.LoginCacheConstants;
|
||||
import cn.stylefeng.roses.kernel.auth.api.context.AuthJwtContext;
|
||||
import cn.stylefeng.roses.kernel.auth.api.context.LoginContext;
|
||||
import cn.stylefeng.roses.kernel.auth.api.enums.DataScopeTypeEnum;
|
||||
import cn.stylefeng.roses.kernel.auth.api.exception.enums.AuthExceptionEnum;
|
||||
|
@ -38,6 +39,7 @@ import cn.stylefeng.roses.kernel.auth.api.expander.AuthConfigExpander;
|
|||
import cn.stylefeng.roses.kernel.auth.api.password.PasswordStoredEncryptApi;
|
||||
import cn.stylefeng.roses.kernel.auth.api.pojo.login.LoginUser;
|
||||
import cn.stylefeng.roses.kernel.auth.api.pojo.login.basic.SimpleUserInfo;
|
||||
import cn.stylefeng.roses.kernel.auth.api.pojo.payload.DefaultJwtPayload;
|
||||
import cn.stylefeng.roses.kernel.cache.api.CacheOperatorApi;
|
||||
import cn.stylefeng.roses.kernel.db.api.factory.PageFactory;
|
||||
import cn.stylefeng.roses.kernel.db.api.factory.PageResultFactory;
|
||||
|
@ -45,8 +47,6 @@ import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
|
|||
import cn.stylefeng.roses.kernel.expand.modular.api.ExpandApi;
|
||||
import cn.stylefeng.roses.kernel.file.api.FileInfoApi;
|
||||
import cn.stylefeng.roses.kernel.file.api.constants.FileConstants;
|
||||
import cn.stylefeng.roses.kernel.jwt.api.context.JwtContext;
|
||||
import cn.stylefeng.roses.kernel.jwt.api.pojo.payload.DefaultJwtPayload;
|
||||
import cn.stylefeng.roses.kernel.message.api.expander.WebSocketConfigExpander;
|
||||
import cn.stylefeng.roses.kernel.office.api.OfficeExcelApi;
|
||||
import cn.stylefeng.roses.kernel.office.api.pojo.report.ExcelExportParam;
|
||||
|
@ -689,7 +689,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|||
|
||||
// 生成用户的token
|
||||
DefaultJwtPayload defaultJwtPayload = new DefaultJwtPayload(loginUser.getUserId(), loginUser.getAccount(), false, null, null);
|
||||
String jwtToken = JwtContext.me().generateTokenDefaultPayload(defaultJwtPayload);
|
||||
String jwtToken = AuthJwtContext.me().generateTokenDefaultPayload(defaultJwtPayload);
|
||||
loginUser.setToken(jwtToken);
|
||||
|
||||
synchronized (this) {
|
||||
|
|
Loading…
Reference in New Issue