Я использую джерси 2.18 для разработки отдыха api. (с использованием контейнера tomcat)jersey cross domain request
Я хочу разрешить доступ к клиентам из другого домена.
Так что я пытаюсь сделать код ниже, чтобы разрешать запросы на междоменные запросы.
Фильтр
public class MyCorsFilter implements Filter {
public MyCorsFilter() { }
public void init(FilterConfig fConfig) throws ServletException { }
public void destroy() { }
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
((HttpServletResponse)response).addHeader("Access-Control-Allow-Origin", "*");
chain.doFilter(request, response);
}
}
web.xml
<filter>
<filter-name>MyCorsFilter</filter-name>
<filter-class>MyCorsFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>MyCorsFilter</filter-name>
<url-pattern>/api/*</url-pattern>
</filter-mapping>
Приведенный выше код работает отлично, пока я не добавить HTTP базовую аутентификацию.
Когда я добавляю обычную проверку подлинности я получаю следующее сообщение об ошибке:
No 'Access-Control-Allow-Origin' header is present on the requested resource.
Когда проверяются заголовки с помощью инструментов разработчика я нашел следующее:
Пожалуйста, обратите внимание, что ошибка при выполнении OPTIONS
метод. (Я использую метод GET
)
Любое предложение о том, как добавить разрешить CORS с базовой HTTP-аутентификацией, будет оценено по достоинству.