Я пытаюсь поймать AuthenticationException
с помощью @ExceptionHandler
. Я могу поймать AuthenticationException
обоими способами:
Первый способ - метод unsuccessfulAuthentication
в моем классе JwtAuthenticationFilter
, который расширяет UsernamePasswordAuthenticationFilter
.
@Autowired
@Qualifier("handlerExceptionResolver")
private HandlerExceptionResolver resolver;
@Override
protected void unsuccessfulAuthentication(HttpServletRequest request, HttpServletResponse response, AuthenticationException exception) throws IOException, ServletException {
resolver.resolveException(request, response, null, exception);
}
Второй способ с AuthenticationEntryPoint:
@Component()
public class RestAuthenticationEntryPoint implements AuthenticationEntryPoint {
@Autowired
@Qualifier("handlerExceptionResolver")
private HandlerExceptionResolver resolver;
@Override
public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException exception) throws IOException, ServletException {
resolver.resolveException(request, response, null, exception);
}
}
Но в обоих случаях resolver
равен нулю, а мой @ExceptionHandler
не вызывается
Чего мне не хватает?
Я попытался создать еще один компонент HandlerExceptionResolver и передать его непосредственно в конструктор. В этом случае resolver
не равен нулю, но @ExceptionHandler
больше не вызывается.
Вот трассировка стека:
2019-06-19 16: 12: 47.093 ОШИБКА 14754 --- [nio-8090-exec-2]
o.a.c.c.C. [. [. [/]. [dispatcherServlet]: Servlet.service () для
исключение сервлета [dispatcherServlet]
java.lang.NullPointerException: null
в
com.jv.scred.security.RestAuthenticationEntryPoint.commence (RestAuthenticationEntryPoint.java:27)
~ [классы /: на]
в
org.springframework.security.web.access.ExceptionTranslationFilter.sendStartAuthentication (ExceptionTranslationFilter.java:213)
~ [Весна-безопасности веб-5.1.5.RELEASE.jar: 5.1.5.RELEASE]
в
org.springframework.security.web.access.ExceptionTranslationFilter.handleSpringSecurityException (ExceptionTranslationFilter.java:185)
~ [Весна-безопасности веб-5.1.5.RELEASE.jar: 5.1.5.RELEASE]
в
org.springframework.security.web.access.ExceptionTranslationFilter.doFilter (ExceptionTranslationFilter.java:141)
~ [Весна-безопасности веб-5.1.5.RELEASE.jar: 5.1.5.RELEASE]