Обработка 403-ошибки весной
Я хочу обработать ошибку 403, чтобы показать нормальное сообщение:
@ExceptionHandler(AccessDeniedException.class)
@ResponseBody
public String accessDeniedException () {
return "my message";
}
Но AccessDeniedException не обрабатывает ошибку 403.
То же самое не работает
@ResponseStatus(value = HttpStatus.FORBIDDEN)
@ExceptionHandler(SecurityException.class)
@ResponseBody
2 ответа
Решение
Как я знаю, если код, вызываемый через ваш контроллер, не генерирует исключение, вы не можете обработать его, используя @ExceptionHandler
(или @ControllerAdvice). Например, исключения, сгенерированные непосредственно из Spring Security, такие как исключение CSRF, не могут быть перехвачены таким образом.
Скорее всего, это происходит через Spring Security
, Если это так, вам нужно настроить и зарегистрировать access-denied-handler
,
Вот подробное руководство, как это сделать.