Мне нужна помощь.
Я создал API в SPRING Tool Suite, который проверяет JWT, прежде чем выпустить любую операцию над API.Это мой фильтр JWT:
public void doFilter(ServletRequest request,
ServletResponse response,
FilterChain filterChain
) throws IOException, ServletException {
try {
Authentication authentication = TokenAuthenticationService.getAuthentication((HttpServletRequest) request);
if (authentication == null) {
System.out.println("auth null");
((HttpServletResponse) response).sendError(BackEndUtilities.INVALID_TOKEN, BackEndUtilities.ERROR_MSG_INVALID_TOKEN);
}
SecurityContextHolder.getContext().setAuthentication((Authentication) authentication);
}catch(ExpiredJwtException ex) {
((HttpServletResponse) response).sendError(BackEndUtilities.INVALID_TOKEN);
}
filterChain.doFilter(request, response);
}
Когда я получаю нулевое значение при аутентификации, я отправляю HTTP-статус 401, чтобы сообщить, что требуется вход в систему.
Константа BackEndUtilities.INVALID_TOKEN является значением int401. Я получаю это значение, когда запускаю API на сервере STS, но при развертывании файла war на TOMCAT 8.5 я получаю HTTP STATUS 403.
В обоих случаях я получаюСтрока «auth null» на консоли, которая появляется только при нулевой аутентификации.Но ПОЧЕМУ TOMCAT 8.5 «меняет» статус?
Кто-то знает, почему это происходит?