Мой проект - Spring Boot 1.5.19 и Spring Security 4.2.6 и CometD 3.0.9.
В журнале на стороне пользовательского интерфейса есть: CometD Subscribe Failed.
В фоновом журнале служб: org.springframework.security.authentication.AuthenticationCredentialsNotFoundException: объект аутентификации не найден в SecurityContext
Расположение: CorsFilter.java: chain.doFilter (req, resp);
Эта ошибка, похоже, не влияет на функции, логин и рукопожатие, а также мета / соединение всегда в порядке Однако, Cometd Subscribe Failed и страница всегда обновляется, тогда возвращаются новые данные. Это не то, что я хочу. Я хочу получить данные в реальном времени. Я не знаю, является ли причиной этой проблемы ошибка SecurityContext.
@Component
@Order(0)
public class CorsFilter implements Filter{
@Override
public void doFilter(ServletRequest req, ServletResponse resp,
FilterChain chain) throws IOException, ServletException {
HttpServletResponse response = (HttpServletResponse) resp;
HttpServletRequest request = (HttpServletRequest) req;
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
response.setHeader("Access-Control-Max-Age", "3600");
response.setHeader("Access-Control-Allow-Headers", "x-requested-with, authorization, Content-Type, Authorization, credential, X-XSRF-TOKEN");
if ("OPTIONS".equalsIgnoreCase(request.getMethod())) {
response.setStatus(HttpServletResponse.SC_OK);
} else {
chain.doFilter(req, resp);
}
}
@Override
public void destroy() {
}
@Override
public void init(FilterConfig arg0) throws ServletException {
}
}
Надеюсь, что нет ошибок, и данные CometD в реальном времени будут успешно запущены.