关于SpringSecurity 自定义 AccessDeniedHandler 不生效的疑问

问题描述:

在 Security配置类中配置了 AccessDeniedHandler,但是发现实际运行时 AccessDeniedHandler 没有被触发。

问题原因:
因为项目中还配置了 GlobalExceptionHandler 。就是出现此种问题的原因一般都

由于GlobalExceptionHandler 全局异常处理器会比 AccessDeniedHandler 先捕获 AccessDeniedException 异常,因此当部署了 GlobalExceptionHandler 后,会发现 AccessDeniedHandler 失效了。

解决方案:

        在原有的 GlobalExceptionHandler 中添加一个AccessDeniedException捕获异常:

@ExceptionHandler(AccessDeniedException.class)
public void accessDeniedException(AccessDeniedException e) throws AccessDeniedException {
throw e;
}

posted @ 2025-08-15 15:50  yjbjingcha  阅读(7)  评论(0)    收藏  举报