Я использую Spring 4 и Tomcat. Иногда мне приходится бросать (собственный) RuntimeException в мой фильтр (элемент управления даже не дошел до контроллера). Проблема в том, что я не выбрасываю исключение, которое понимает tomcat, оно преобразуется в 500 (внутренняя ошибка сервера). Я считаю, что 403 Forbidden будет лучше, чем 500 (для моего обычного исключения). Я просмотрел аннотации @ExceptionHandler
и @ControllerAdvice
. Но они работают только в том случае, если управление достигает контроллера.
На данный момент я вручную устанавливаю статус 403 в HTTPResponse
в моем фильтре. Есть ли лучший способ справиться с этим сценарием?