Java后端
·2024-03-20#求助#
今天在写代码的时候SonarLint插件提示这个问题看了半天也不懂怎么解决,怎么设计这段逻辑,求大佬指点[抱拳][抱拳][抱拳]
在SpringBoot项目里配置了一下拦截器,覆写了preHandle方法,这个方法要求返回值必须是boolean。
这个方法里首先就是判断当前的handler 是不是HandlerMethod实例
if (!(handler instanceof HandlerMethod)) {
return true;
}
然后在这个方法里做很多校验,校验不通过就直接抛出异常,最后如果程序能走到方法结尾,则返回true,就证明没问题嘛。
就是这个逻辑SonarLint提示有问题。
具体代码如下:
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
String token = request.getHeader("Authorization");
// 如果不是映射到方法直接通过
if (!(handler instanceof HandlerMethod)) {
return true;
}
// 执行认证
if (StringUtils.isBlank(token)) {
throw new BusinessException(StatusCode.NOT_LOGIN, "当前未登录,请访问首页重新登录");
}
String sign = "123456789"
// 验证token 用户密码加签名验证token
JWTVerifier jwtVerifier = JWT.require(Algorithm.HMAC256(sign)).build();
try {
jwtVerifier.verify(token); // 验证token
} catch (JWTVerificationException e){
throw new BusinessException(StatusCode.NOT_LOGIN, "登录状态失效,请重新登录");
}
return true;
}
突然想到鱼总的代码小抄可以高亮代码,在这里附上连接
www.codecopy.cn/post/4a1laq
8
0
分享
操作
评论
问答助学
相关内容
0个评论
全部评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
