【7.6.0】【框架改造】【auth】【jwt】减小jwt的职责,jwt模块保持独立

pull/55/head
fengshuonan 2023-05-09 10:19:54 +08:00
parent cd146aeaf1
commit 53b4123094
19 changed files with 139 additions and 136 deletions

View File

@ -22,42 +22,36 @@
* 5. https://gitee.com/stylefeng/guns * 5. https://gitee.com/stylefeng/guns
* 6. * 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.auth.api.pojo.payload.DefaultJwtPayload;
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;
/** /**
* jwt * Authjwt使
* *
* @author fengshuonan * @author fengshuonan
* @since 2020/12/1 14:34 * @since 2023/5/9 10:04
*/ */
@Configuration public interface AuthJwtTokenApi {
public class GunsJwtAutoConfiguration {
/** /**
* jwt * tokenpayload
* *
* @param defaultJwtPayload jwt
* @return jwt token
* @author fengshuonan * @author fengshuonan
* @since 2020/12/1 14:40 * @since 2020/10/21 11:38
*/ */
@Bean String generateTokenDefaultPayload(DefaultJwtPayload defaultJwtPayload);
@ConditionalOnMissingBean(JwtApi.class)
public JwtApi jwtApi() {
JwtConfig jwtConfig = new JwtConfig(); /**
* jwtpayload
// 从系统配置表中读取配置 *
jwtConfig.setJwtSecret(JwtConfigExpander.getJwtSecret()); * @param token jwttoken
jwtConfig.setExpiredSeconds(JwtConfigExpander.getJwtTimeoutSeconds()); * @return payload
* @author fengshuonan
return new JwtTokenOperator(jwtConfig); * @since 2020/10/21 11:51
} */
DefaultJwtPayload getDefaultPayload(String token);
} }

View File

@ -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.LoginResponse;
import cn.stylefeng.roses.kernel.auth.api.pojo.auth.LoginWithTokenRequest; 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.login.LoginUser;
import cn.stylefeng.roses.kernel.jwt.api.pojo.payload.DefaultJwtPayload; import cn.stylefeng.roses.kernel.auth.api.pojo.payload.DefaultJwtPayload;
/** /**
* 退token * 退token

View File

@ -22,10 +22,10 @@
* 5. https://gitee.com/stylefeng/guns * 5. https://gitee.com/stylefeng/guns
* 6. * 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.hutool.extra.spring.SpringUtil;
import cn.stylefeng.roses.kernel.jwt.api.JwtApi; import cn.stylefeng.roses.kernel.auth.api.AuthJwtTokenApi;
/** /**
* Jwtcontextjwt * Jwtcontextjwt
@ -33,7 +33,7 @@ import cn.stylefeng.roses.kernel.jwt.api.JwtApi;
* @author fengshuonan * @author fengshuonan
* @since 2020/10/21 14:07 * @since 2020/10/21 14:07
*/ */
public class JwtContext { public class AuthJwtContext {
/** /**
* jwt * jwt
@ -41,8 +41,8 @@ public class JwtContext {
* @author fengshuonan * @author fengshuonan
* @since 2020/10/21 14:07 * @since 2020/10/21 14:07
*/ */
public static JwtApi me() { public static AuthJwtTokenApi me() {
return SpringUtil.getBean(JwtApi.class); return SpringUtil.getBean(AuthJwtTokenApi.class);
} }
} }

View File

@ -22,7 +22,7 @@
* 5. https://gitee.com/stylefeng/guns * 5. https://gitee.com/stylefeng/guns
* 6. * 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.hutool.core.util.RandomUtil;
import cn.stylefeng.roses.kernel.config.api.context.ConfigContext; import cn.stylefeng.roses.kernel.config.api.context.ConfigContext;

View File

@ -22,7 +22,7 @@
* 5. https://gitee.com/stylefeng/guns * 5. https://gitee.com/stylefeng/guns
* 6. * 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 cn.hutool.core.util.IdUtil;
import lombok.Data; import lombok.Data;

View File

@ -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.TempSecretApi;
import cn.stylefeng.roses.kernel.auth.api.constants.AuthConstants; 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.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.context.LoginContext;
import cn.stylefeng.roses.kernel.auth.api.enums.SsoClientTypeEnum; import cn.stylefeng.roses.kernel.auth.api.enums.SsoClientTypeEnum;
import cn.stylefeng.roses.kernel.auth.api.exception.AuthException; 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.LoginResponse;
import cn.stylefeng.roses.kernel.auth.api.pojo.auth.LoginWithTokenRequest; 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.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.SsoLoginCodeRequest;
import cn.stylefeng.roses.kernel.auth.api.pojo.sso.SsoProperties; import cn.stylefeng.roses.kernel.auth.api.pojo.sso.SsoProperties;
import cn.stylefeng.roses.kernel.cache.api.CacheOperatorApi; 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.constants.DatasourceContainerConstants;
import cn.stylefeng.roses.kernel.dsctn.api.context.CurrentDataSourceContext; import cn.stylefeng.roses.kernel.dsctn.api.context.CurrentDataSourceContext;
import cn.stylefeng.roses.kernel.jwt.JwtTokenOperator; 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.JwtException;
import cn.stylefeng.roses.kernel.jwt.api.exception.enums.JwtExceptionEnum; 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.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.log.api.LoginLogServiceApi;
import cn.stylefeng.roses.kernel.message.api.expander.WebSocketConfigExpander; import cn.stylefeng.roses.kernel.message.api.expander.WebSocketConfigExpander;
import cn.stylefeng.roses.kernel.rule.constants.RuleConstants; import cn.stylefeng.roses.kernel.rule.constants.RuleConstants;
@ -130,6 +131,9 @@ public class AuthServiceImpl implements AuthServiceApi {
@Resource(name = "caClientTokenCacheApi") @Resource(name = "caClientTokenCacheApi")
private CacheOperatorApi<String> caClientTokenCacheApi; private CacheOperatorApi<String> caClientTokenCacheApi;
@Resource
private JwtApi jwtApi;
@Override @Override
public LoginResponse login(LoginRequest loginRequest) { public LoginResponse login(LoginRequest loginRequest) {
return loginAction(loginRequest, true, null); return loginAction(loginRequest, true, null);
@ -225,10 +229,10 @@ public class AuthServiceImpl implements AuthServiceApi {
public DefaultJwtPayload validateToken(String token) throws AuthException { public DefaultJwtPayload validateToken(String token) throws AuthException {
try { try {
// 1. 先校验jwt token本身是否有问题 // 1. 先校验jwt token本身是否有问题
JwtContext.me().validateTokenWithException(token); jwtApi.validateTokenWithException(token);
// 2. 获取jwt的payload // 2. 获取jwt的payload
DefaultJwtPayload defaultPayload = JwtContext.me().getDefaultPayload(token); DefaultJwtPayload defaultPayload = AuthJwtContext.me().getDefaultPayload(token);
// 3. 如果是7天免登陆则不校验session过期 // 3. 如果是7天免登陆则不校验session过期
if (defaultPayload.getRememberMe()) { if (defaultPayload.getRememberMe()) {
@ -412,7 +416,7 @@ public class AuthServiceImpl implements AuthServiceApi {
// 9. 生成用户的token // 9. 生成用户的token
DefaultJwtPayload defaultJwtPayload = new DefaultJwtPayload(loginUser.getUserId(), loginUser.getAccount(), loginRequest.getRememberMe(), caToken, loginRequest.getTenantCode()); 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.setToken(jwtToken);
// 如果包含租户编码则放到loginUser中 // 如果包含租户编码则放到loginUser中

View File

@ -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;
/**
* AuthJWT 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);
}
}

View File

@ -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;
/**
* Authjwt
*
* @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);
}
}

View File

@ -17,13 +17,6 @@
<dependencies> <dependencies>
<!--config模块的api-->
<dependency>
<groupId>cn.stylefeng.roses</groupId>
<artifactId>config-api</artifactId>
<version>${roses.version}</version>
</dependency>
<!--jwt token--> <!--jwt token-->
<dependency> <dependency>
<groupId>io.jsonwebtoken</groupId> <groupId>io.jsonwebtoken</groupId>

View File

@ -25,7 +25,6 @@
package cn.stylefeng.roses.kernel.jwt.api; package cn.stylefeng.roses.kernel.jwt.api;
import cn.stylefeng.roses.kernel.jwt.api.exception.JwtException; import cn.stylefeng.roses.kernel.jwt.api.exception.JwtException;
import cn.stylefeng.roses.kernel.jwt.api.pojo.payload.DefaultJwtPayload;
import java.util.Map; import java.util.Map;
@ -47,16 +46,6 @@ public interface JwtApi {
*/ */
String generateToken(Map<String, Object> payload); String generateToken(Map<String, Object> payload);
/**
* tokenpayload
*
* @param defaultJwtPayload jwt
* @return jwt token
* @author fengshuonan
* @since 2020/10/21 11:38
*/
String generateTokenDefaultPayload(DefaultJwtPayload defaultJwtPayload);
/** /**
* jwtpayload * jwtpayload
* *
@ -67,16 +56,6 @@ public interface JwtApi {
*/ */
Map<String, Object> getJwtPayloadClaims(String token); Map<String, Object> getJwtPayloadClaims(String token);
/**
* jwtpayload
*
* @param token jwttoken
* @return payload
* @author fengshuonan
* @since 2020/10/21 11:51
*/
DefaultJwtPayload getDefaultPayload(String token);
/** /**
* jwt token * jwt token
* <p> * <p>

View File

@ -24,7 +24,6 @@
*/ */
package cn.stylefeng.roses.kernel.jwt; package cn.stylefeng.roses.kernel.jwt;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.convert.Convert; import cn.hutool.core.convert.Convert;
import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil; 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.JwtException;
import cn.stylefeng.roses.kernel.jwt.api.exception.enums.JwtExceptionEnum; 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.config.JwtConfig;
import cn.stylefeng.roses.kernel.jwt.api.pojo.payload.DefaultJwtPayload;
import io.jsonwebtoken.Claims; import io.jsonwebtoken.Claims;
import io.jsonwebtoken.ExpiredJwtException; import io.jsonwebtoken.ExpiredJwtException;
import io.jsonwebtoken.Jwts; import io.jsonwebtoken.Jwts;
@ -72,25 +70,6 @@ public class JwtTokenOperator implements JwtApi {
.compact(); .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 @Override
public Claims getJwtPayloadClaims(String token) { public Claims getJwtPayloadClaims(String token) {
return Jwts.parser() return Jwts.parser()
@ -99,12 +78,6 @@ public class JwtTokenOperator implements JwtApi {
.getBody(); .getBody();
} }
@Override
public DefaultJwtPayload getDefaultPayload(String token) {
Map<String, Object> jwtPayload = getJwtPayloadClaims(token);
return BeanUtil.toBeanIgnoreError(jwtPayload, DefaultJwtPayload.class);
}
@Override @Override
public boolean validateToken(String token) { public boolean validateToken(String token) {
try { try {

View File

@ -1 +0,0 @@
jwt功能的spring boot自动加载模块

View File

@ -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>

View File

@ -1,2 +0,0 @@
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
cn.stylefeng.roses.kernel.jwt.starter.GunsJwtAutoConfiguration

View File

@ -18,7 +18,6 @@
<modules> <modules>
<module>jwt-api</module> <module>jwt-api</module>
<module>jwt-sdk</module> <module>jwt-sdk</module>
<module>jwt-spring-boot-starter</module>
</modules> </modules>
<dependencies> <dependencies>

View File

@ -37,7 +37,7 @@
<!--jwt模块的sdk--> <!--jwt模块的sdk-->
<dependency> <dependency>
<groupId>cn.stylefeng.roses</groupId> <groupId>cn.stylefeng.roses</groupId>
<artifactId>jwt-sdk</artifactId> <artifactId>auth-api</artifactId>
<version>${roses.version}</version> <version>${roses.version}</version>
</dependency> </dependency>
</dependencies> </dependencies>

View File

@ -1,8 +1,8 @@
package cn.stylefeng.roses.kernel.socket.business.websocket.server; package cn.stylefeng.roses.kernel.socket.business.websocket.server;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.stylefeng.roses.kernel.jwt.api.context.JwtContext; import cn.stylefeng.roses.kernel.auth.api.context.AuthJwtContext;
import cn.stylefeng.roses.kernel.jwt.api.pojo.payload.DefaultJwtPayload; 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.ClientMessageTypeEnum;
import cn.stylefeng.roses.kernel.socket.api.enums.ServerMessageTypeEnum; import cn.stylefeng.roses.kernel.socket.api.enums.ServerMessageTypeEnum;
import cn.stylefeng.roses.kernel.socket.api.enums.SystemMessageTypeEnum; import cn.stylefeng.roses.kernel.socket.api.enums.SystemMessageTypeEnum;
@ -46,7 +46,7 @@ public class WebSocketServer {
String userId = null; String userId = null;
try { try {
// 解析用户信息 // 解析用户信息
DefaultJwtPayload defaultPayload = JwtContext.me().getDefaultPayload(token); DefaultJwtPayload defaultPayload = AuthJwtContext.me().getDefaultPayload(token);
userId = defaultPayload.getUserId().toString(); userId = defaultPayload.getUserId().toString();
} catch (io.jsonwebtoken.JwtException e) { } catch (io.jsonwebtoken.JwtException e) {
try { try {

View File

@ -8,6 +8,7 @@ import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.RandomUtil; import cn.hutool.core.util.RandomUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.stylefeng.roses.kernel.auth.api.SessionManagerApi; 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.context.LoginContext;
import cn.stylefeng.roses.kernel.auth.api.exception.AuthException; import cn.stylefeng.roses.kernel.auth.api.exception.AuthException;
import cn.stylefeng.roses.kernel.auth.api.exception.enums.AuthExceptionEnum; 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.LoginRequest;
import cn.stylefeng.roses.kernel.auth.api.pojo.auth.LoginResponse; 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.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.cache.api.CacheOperatorApi;
import cn.stylefeng.roses.kernel.customer.api.OldPasswordValidateApi; import cn.stylefeng.roses.kernel.customer.api.OldPasswordValidateApi;
import cn.stylefeng.roses.kernel.customer.api.constants.CustomerConstants; 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.FileInfoApi;
import cn.stylefeng.roses.kernel.file.api.FileOperatorApi; import cn.stylefeng.roses.kernel.file.api.FileOperatorApi;
import cn.stylefeng.roses.kernel.file.api.pojo.response.SysFileInfoResponse; 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.log.api.LoginLogServiceApi;
import cn.stylefeng.roses.kernel.rule.enums.StatusEnum; import cn.stylefeng.roses.kernel.rule.enums.StatusEnum;
import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum; import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum;
@ -202,7 +202,7 @@ public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, Customer> i
// 生成用户的token // 生成用户的token
DefaultJwtPayload defaultJwtPayload = new DefaultJwtPayload(loginUser.getUserId(), loginUser.getAccount(), loginRequest.getRememberMe(), null, null); 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); loginUser.setToken(jwtToken);
synchronized (SESSION_OPERATE_LOCK) { synchronized (SESSION_OPERATE_LOCK) {

View File

@ -31,6 +31,7 @@ import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.stylefeng.roses.kernel.auth.api.SessionManagerApi; import cn.stylefeng.roses.kernel.auth.api.SessionManagerApi;
import cn.stylefeng.roses.kernel.auth.api.constants.LoginCacheConstants; 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.context.LoginContext;
import cn.stylefeng.roses.kernel.auth.api.enums.DataScopeTypeEnum; import cn.stylefeng.roses.kernel.auth.api.enums.DataScopeTypeEnum;
import cn.stylefeng.roses.kernel.auth.api.exception.enums.AuthExceptionEnum; 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.password.PasswordStoredEncryptApi;
import cn.stylefeng.roses.kernel.auth.api.pojo.login.LoginUser; 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.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.cache.api.CacheOperatorApi;
import cn.stylefeng.roses.kernel.db.api.factory.PageFactory; import cn.stylefeng.roses.kernel.db.api.factory.PageFactory;
import cn.stylefeng.roses.kernel.db.api.factory.PageResultFactory; 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.expand.modular.api.ExpandApi;
import cn.stylefeng.roses.kernel.file.api.FileInfoApi; import cn.stylefeng.roses.kernel.file.api.FileInfoApi;
import cn.stylefeng.roses.kernel.file.api.constants.FileConstants; 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.message.api.expander.WebSocketConfigExpander;
import cn.stylefeng.roses.kernel.office.api.OfficeExcelApi; import cn.stylefeng.roses.kernel.office.api.OfficeExcelApi;
import cn.stylefeng.roses.kernel.office.api.pojo.report.ExcelExportParam; import cn.stylefeng.roses.kernel.office.api.pojo.report.ExcelExportParam;
@ -689,7 +689,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
// 生成用户的token // 生成用户的token
DefaultJwtPayload defaultJwtPayload = new DefaultJwtPayload(loginUser.getUserId(), loginUser.getAccount(), false, null, null); 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); loginUser.setToken(jwtToken);
synchronized (this) { synchronized (this) {