Używam Spring 4 i Tomcat. Problem polega czasem na tym, że muszę rzucić (niestandardowy) wyjątek RuntimeException w moim filtrze (kontrola nie dotarła nawet do kontrolera). Problem polega na tym, że nie wyrzucam wyjątku, który tomcat rozumie, przekształca się w 500 (wewnętrzny błąd serwera). Wierzę, że 403 Forbidden byłoby lepsze niż 500 (dla mojego wyjątku niestandardowego). Przyjrzałem się adnotacjom @ExceptionHandler
i @ControllerAdvice
. Ale działają tylko wtedy, gdy sterowanie osiągnie kontroler.Jak radzić sobie z wyjątkami umieszczonymi w filtrach?
Obecnie ręcznie ustawiam status na 403 w HTTPResponse
w moim filtrze. Czy istnieje lepszy sposób radzenia sobie z tym scenariuszem?
wyjazdu [to SO post] (http://stackoverflow.com/questions/29914717/servlet-filter-specific-exception-handling-in-java). Możesz rozszerzyć filtr i obsłużyć wyjątek w super. –
@TimBiegeleisen - Cóż, od tej pory stosuję podobne podejście :). Dziękuję za wskazanie tego posta. – TheLostMind
@TimBiegeleisen Natknąłem się na podobny problem i opublikowałem rozwiązanie, które może Cię zainteresować https://stackoverflow.com/questions/34595605/how-to-manage-exceptions-thrown-in-filters-in-spring/ 43242424 – Raf