处理 Spring 中的 403 错误

Handle 403-error in Spring

我想处理 403 错误以显示正常消息:

@ExceptionHandler(AccessDeniedException.class)
    @ResponseBody
    public String accessDeniedException () {
        return "my message";
    }

但是 AccessDeniedException 无法处理 403 错误。

以下同样无效:

@ResponseStatus(value = HttpStatus.FORBIDDEN)
    @ExceptionHandler(SecurityException.class)
    @ResponseBody

据我所知,如果通过控制器调用的代码没有抛出异常,则无法使用 @ExceptionHandler(或@ControllerAdvice)来处理它。例如,Spring 安全直接抛出的异常,如 CSRF 异常,无法通过这种方式捕获。

这很可能来自 Spring Security。如果是这种情况,您需要设置并注册一个 access-denied-handler.

Here is a detailed tutorial 如何做到这一点。