当前位置:   article > 正文

关于accessDeniedHandler与authenticationEntryPoint 全局异常处理问题

accessdeniedhandler

简单说就是:
authenticationEntryPoint 会在全局异常捕获前捕获异常;
accessDeniedHandler会在全局异常之后捕获

authenticationEntryPoint

在处理jwt问题中,这里我需要处理不同的异常,返回给前端不同的异常信息,所以我想直接抛出异常,让全局统一处理,并返回异常信息,而我们已经将这里的异常交给了spring security ,这时我们就需要改造以下代码

    @Autowired
    @Qualifier("handlerExceptionResolver")
    private HandlerExceptionResolver resolver;

    @Override
    protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
        //我们先拿到请求头中的token
        String token = request.getHeader("Authorization");
        if(StringUtils.isBlank(token)){
            //说明没有携带token 那么直接放行 之后的过滤器肯定会报错,那么就说明用户没有登录
            filterChain.doFilter(request,response);
            return;
        }
```try {
            Claims claims = JwtUtil.parseJWT(token);
            userid  = claims.getSubject();
        }catch (ExpiredJwtException e){
            resolver.resolveException(request, response, null, new RuntimeException("无效的会话,或者会话已过期,请重新登录。"));
            return;
        }catch (Exception e) {
//            e.printStackTrace();
            resolver.resolveException(request, response, null, new RuntimeException("用户会话异常,请重新登录,或联系管理员。"));
            return;
//            throw new RuntimeException("token无效");
        }
        
//这里直截取了部分重要代码....

}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29

这里直接使用resolver.resolveException将异常抛给了全局,就可以在全局中处理我们的数据了

accessDeniedHandler

而 我们可以直接在全局异常中进行异常处理

    @ResponseBody
    @ExceptionHandler(value = AccessDeniedException.class)
    public R handleAccessRE(AccessDeniedException e) {
        return R.error("当前用户权限不足!");
    }
  • 1
  • 2
  • 3
  • 4
  • 5
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/68916
推荐阅读
相关标签
  

闽ICP备14008679号