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

同步缓存优化逻辑

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