南风晚
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
0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
下载 APP