记得上下班打卡 | git大法好,push需谨慎

Commit 5188597e authored by 姜秀龙's avatar 姜秀龙

refactor(adam): 登出直接从 token 解析 jti

移除多余的 resolveJtiFromRequest,避免 u-tag 与二次 parse 重复逻辑。
Co-authored-by: 's avatarCursor <cursoragent@cursor.com>
parent 4fb161ca
...@@ -20,7 +20,6 @@ import com.liquidnet.service.adam.service.AdamRdmService; ...@@ -20,7 +20,6 @@ import com.liquidnet.service.adam.service.AdamRdmService;
import com.liquidnet.service.adam.service.AdamWechatService; import com.liquidnet.service.adam.service.AdamWechatService;
import com.liquidnet.service.adam.service.IAdamUserService; import com.liquidnet.service.adam.service.IAdamUserService;
import com.liquidnet.service.adam.support.AdamUserSessionSupport; import com.liquidnet.service.adam.support.AdamUserSessionSupport;
import io.jsonwebtoken.Claims;
import com.liquidnet.service.base.ErrorMapping; import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.base.ResponseDto; import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.base.UserPathDto; import com.liquidnet.service.base.UserPathDto;
...@@ -377,9 +376,16 @@ public class AdamLoginController { ...@@ -377,9 +376,16 @@ public class AdamLoginController {
public void logout() { public void logout() {
log.info("###logout_uid:{}", CurrentUtil.getCurrentUid()); log.info("###logout_uid:{}", CurrentUtil.getCurrentUid());
String jti = resolveJtiFromRequest(); String token = CurrentUtil.getToken();
if (StringUtils.isNotBlank(jti)) { if (StringUtils.isNotBlank(token)) {
adamUserSessionSupport.unbindSession(jti, CurrentUtil.getCurrentUid()); try {
String jti = jwtValidator.parse(token).getId();
if (StringUtils.isNotBlank(jti)) {
adamUserSessionSupport.unbindSession(jti, CurrentUtil.getCurrentUid());
}
} catch (Exception e) {
log.warn("logout parse token failed", e);
}
} }
} }
...@@ -501,26 +507,6 @@ public class AdamLoginController { ...@@ -501,26 +507,6 @@ public class AdamLoginController {
return token; return token;
} }
private String resolveJtiFromRequest() {
Map<?, ?> claims = CurrentUtil.getTokenClaims();
if (claims != null) {
Object jti = claims.get(CurrentUtil.TOKEN_JTI);
if (jti != null && StringUtils.isNotBlank(jti.toString())) {
return jti.toString();
}
}
String token = CurrentUtil.getToken();
if (StringUtils.isNotBlank(token)) {
try {
Claims parsed = jwtValidator.parse(token);
return parsed.getId();
} catch (Exception e) {
log.warn("logout resolve jti failed", e);
}
}
return null;
}
private ResponseDto<AdamLoginInfoVo> loginVoResponseProcessing(AdamLoginInfoVo loginInfoVo) { private ResponseDto<AdamLoginInfoVo> loginVoResponseProcessing(AdamLoginInfoVo loginInfoVo) {
AdamUserInfoVo userInfo = loginInfoVo.getUserInfo(); AdamUserInfoVo userInfo = loginInfoVo.getUserInfo();
adamRdmService.ratingProvince(userInfo); adamRdmService.ratingProvince(userInfo);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment