我想处理403错误以显示正常消息:
@ExceptionHandler(AccessDeniedException.class)
@ResponseBody
public String accessDeniedException () {
return "my message";
}
但是AccessDeniedException没有处理403错误。
同样没有工作跟随:
@ResponseStatus(value = HttpStatus.FORBIDDEN)
@ExceptionHandler(SecurityException.class)
@ResponseBody
答案 0 :(得分:3)
据我所知,如果通过控制器调用的代码没有抛出异常,则无法使用@ExceptionHandler
(或@ControllerAdvice)处理它。例如,直接从Spring Security抛出的异常(如CSRF异常)无法以这种方式捕获。
答案 1 :(得分:1)
这很有可能来自Spring Security
。如果是这种情况,您需要设置并注册access-denied-handler
。
Here is a detailed tutorial如何做到这一点。