提交 0b47c272 编写于 作者: zhouweidong's avatar zhouweidong

同步缓存优化逻辑

上级 8b08b2f9
...@@ -78,35 +78,32 @@ public class ClientAuthenticationResource ...@@ -78,35 +78,32 @@ public class ClientAuthenticationResource
@PostMapping(value = "v7/refreshToken") @PostMapping(value = "v7/refreshToken")
public String refreshToken(@Validated @RequestBody @NotNull(message = "token不能为空") String oldToken) { public String refreshToken(@Validated @RequestBody @NotNull(message = "token不能为空") String oldToken) {
String username = null; String username = null;
AuthenticationUser user = null; String newToken = null;
try { try {
// 查询token里面的用户名
username = jwtTokenUtil.getUsernameFromToken(oldToken); username = jwtTokenUtil.getUsernameFromToken(oldToken);
}catch (ExpiredJwtException e){ } catch (ExpiredJwtException e) {
log.error(e.getMessage()); log.error(e.getMessage());
} }
if(!StringUtils.isEmpty(username)){ if (!StringUtils.isEmpty(username)) {
// 根据用户名取缓存的用户对象 AuthenticationUser user = userDetailsService.loadUserByUsername(username);
user = userDetailsService.loadUserByUsername(username); if (jwtTokenUtil.validateToken(oldToken, user)) {
} Token tok = uaaCoreService.getToken(oldToken);
if (!ObjectUtils.isEmpty(user) && !jwtTokenUtil.validateToken(oldToken, user)) { if (ObjectUtils.isEmpty(tok)) {
throw new BadRequestAlertException("token已失效", "", ""); newToken = jwtTokenUtil.generateToken(user);
} uaaCoreService.setToken(oldToken, newToken);
Token tok = uaaCoreService.getToken(oldToken); } else {
if (ObjectUtils.isEmpty(tok)) { if (uaaCoreService.isExpired(tok, expiration)) {
// 如果为空则生成一个新token newToken = jwtTokenUtil.generateToken(user);
String newToken = jwtTokenUtil.generateToken(user); uaaCoreService.setToken(oldToken, newToken);
// 存入缓存中 }
tok = uaaCoreService.setToken(oldToken, newToken); }
}else {
// 如果token存活时间超过半个小时,则续期,否则还是返回原来的token
if (uaaCoreService.isExpired(tok,expiration)) {
String newToken = jwtTokenUtil.generateToken(user);
// 存入缓存中
tok = uaaCoreService.setToken(oldToken, newToken);
} }
} }
return tok.getNewToken(); if (StringUtils.isEmpty(newToken)) {
throw new BadRequestAlertException("获取token失败", "", "refreshToken");
} else {
return newToken;
}
} }
@PostMapping(value = "v7/changepwd") @PostMapping(value = "v7/changepwd")
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册