处理 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 如何做到这一点。
我想处理 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 如何做到这一点。