This commit is contained in:
caozehui
2025-02-14 10:32:31 +08:00
parent 801e17e274
commit b5cee74731
7 changed files with 241 additions and 29 deletions

View File

@@ -91,7 +91,6 @@ public class AuthController extends BaseController {
CustomCacheUtil customCacheUtil = SpringUtil.getBean(CustomCacheUtil.CACHE_NAME);
customCacheUtil.putWithExpireTime(accessToken, JSON.toJSONString(user), DateUnit.DAY.getMillis() * 2);
customCacheUtil.putWithExpireTime(refreshToken, JSON.toJSONString(user), (DateUnit.DAY.getMillis() * 4));
sysLogAuditService.saveAuthLog(user.getName(), 1);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, token, methodDescribe);
@@ -105,13 +104,11 @@ public class AuthController extends BaseController {
String methodDescribe = getMethodDescribe("logout");
LogUtil.njcnDebug(log, "{},注销登录", methodDescribe);
String accessTokenStr = request.getHeader(SecurityConstants.AUTHORIZATION_KEY);
String refreshToken = request.getHeader(SecurityConstants.REFRESH_TOKEN_KEY);
if (StrUtil.isNotBlank(accessTokenStr) && StrUtil.isNotBlank(refreshToken)) {
if (StrUtil.isNotBlank(accessTokenStr)) {
String accessToken = accessTokenStr.replace(SecurityConstants.AUTHORIZATION_PREFIX, Strings.EMPTY);
CustomCacheUtil customCacheUtil = SpringUtil.getBean(CustomCacheUtil.CACHE_NAME);
customCacheUtil.remove(accessToken);
customCacheUtil.remove(refreshToken);
Map<String, Object> map = JwtUtil.parseToken(accessToken);
SysUser user = sysUserService.getById((String) map.get(SecurityConstants.USER_ID));
@@ -128,25 +125,24 @@ public class AuthController extends BaseController {
public HttpResult<Object> refreshToken(HttpServletRequest request) {
String methodDescribe = getMethodDescribe("refreshToken");
LogUtil.njcnDebug(log, "{}刷新token", methodDescribe);
String refreshToken = request.getHeader(SecurityConstants.REFRESH_TOKEN_KEY);
String accessTokenStr = request.getHeader(SecurityConstants.AUTHORIZATION_KEY);
Token token = new Token();
if (StrUtil.isNotBlank(refreshToken)) {
Map<String, Object> map = JwtUtil.parseToken(refreshToken);
if (StrUtil.isNotBlank(accessTokenStr)) {
String accessToken = accessTokenStr.replace(SecurityConstants.AUTHORIZATION_PREFIX, Strings.EMPTY);
Map<String, Object> map = JwtUtil.parseToken(accessToken);
String userId = (String) map.get(SecurityConstants.USER_ID);
SysUser user = sysUserService.getById(userId);
String accessToken = JwtUtil.getAccessToken(userId);
String accessTokenNew = JwtUtil.getAccessToken(userId);
String refreshTokenNew = JwtUtil.getRefreshToken(accessTokenNew);
String refreshTokenNew = JwtUtil.getRefreshToken(accessToken);
token.setAccessToken(accessToken);
token.setAccessToken(accessTokenNew);
token.setRefreshToken(refreshTokenNew);
CustomCacheUtil customCacheUtil = SpringUtil.getBean(CustomCacheUtil.CACHE_NAME);
customCacheUtil.remove(refreshToken);
customCacheUtil.putWithExpireTime(accessToken, JSON.toJSONString(user), DateUnit.DAY.getMillis() * 2);
customCacheUtil.putWithExpireTime(refreshTokenNew, JSON.toJSONString(user), (DateUnit.DAY.getMillis() * 4));
customCacheUtil.remove(accessToken);
customCacheUtil.putWithExpireTime(accessTokenNew, JSON.toJSONString(user), DateUnit.DAY.getMillis() * 2);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, token, methodDescribe);
} else {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, methodDescribe);

View File

@@ -22,7 +22,7 @@ import java.util.List;
@Slf4j
@Component
public class AuthGlobalFilter implements Filter, Ordered {
private final static List<String> IGNORE_URI = Arrays.asList("/admin/login", "/report/generateReport", "/admin/refreshToken");
private final static List<String> IGNORE_URI = Arrays.asList("/admin/login", "/report/generateReport");
@Override
public int getOrder() {
@@ -66,7 +66,7 @@ public class AuthGlobalFilter implements Filter, Ordered {
if ("true".equals(isRefreshToken)) {
res.getWriter().write("{\"code\": 4001, \"message\":\"" + SystemValidMessage.TOKEN_EXPIRED + "\"}"); //前端重定向到登录页面
} else {
res.getWriter().write("{\"code\": 401, \"message\":\"" + SystemValidMessage.TOKEN_EXPIRED + "\"}"); //前端发起refreshToken请求
res.getWriter().write("{\"code\": 401, \"message\":\"" + SystemValidMessage.ACCESS_TOKEN_EXPIRED + "\"}"); //前端发起refreshToken请求
}
} else {
filterChain.doFilter(req, res);

View File

@@ -65,10 +65,6 @@ public class LogAdvice implements ApplicationListener<ContextRefreshedEvent> {
String authorization = request.getHeader(SecurityConstants.AUTHORIZATION_KEY);
if (StrUtil.isNotBlank(authorization)) {
String tokenStr = authorization.replace(SecurityConstants.AUTHORIZATION_PREFIX, Strings.EMPTY);
// CustomCacheUtil customCacheUtil = SpringUtil.getBean(CustomCacheUtil.CACHE_NAME);
// String userjson = customCacheUtil.get(tokenStr, false);
// SysUser user = JSONObject.parseObject(userjson, SysUser.class);
// username = user.getName();
Map<String, Object> map = JwtUtil.parseToken(tokenStr);
SysUser user = sysUserService.getById((String) map.get(SecurityConstants.USER_ID));

View File

@@ -91,5 +91,7 @@ public interface SystemValidMessage {
String TOKEN_EXPIRED = "token已过期请重新登录";
String ACCESS_TOKEN_EXPIRED = "access-token已过期";
String USER_ID_FORMAT_ERROR = "用户id格式错误请检查userId参数";
}