HandlerExceptionResolver является нулевым - PullRequest
0 голосов
/ 19 июня 2019

Я пытаюсь поймать 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]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...