CORS фильтр не работает в моем Java-приложении - PullRequest
0 голосов
/ 26 апреля 2018

Я использую jdk 8 и добавил tomcat-catalina в свой build.gradle и настроил следующие значения в web.xml, но он не возвращает заголовки ответа при обращении к URL-адресу запроса.

build.gradle:

compile group: 'org.apache.tomcat', name: 'tomcat-catalina', version: '8.5.29'

web.xml

<filter>
  <filter-name>CorsFilter</filter-name>
  <filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
  <init-param>
    <param-name>cors.allowed.origins</param-name>
    <param-value>*</param-value>
  </init-param>
  <init-param>
    <param-name>cors.allowed.methods</param-name>
    <param-value>GET,POST,HEAD,OPTIONS,PUT</param-value>
  </init-param>
  <init-param>
    <param-name>cors.allowed.headers</param-name>
    <param-value>Content-Type,X-Requested-With,accept,Origin,Access-Control-Request-Method,Access-Control-Request-Headers</param-value>
  </init-param>
  <init-param>
    <param-name>cors.exposed.headers</param-name>
    <param-value>Access-Control-Allow-Origin,Access-Control-Allow-Credentials</param-value>
  </init-param>
  <init-param>
    <param-name>cors.support.credentials</param-name>
    <param-value>true</param-value>
  </init-param>
  <init-param>
    <param-name>cors.preflight.maxage</param-name>
    <param-value>10</param-value>
  </init-param>
</filter>
<filter-mapping>
  <filter-name>CorsFilter</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>

Это не работает для меня ..

Resonse:

*   Trying 127.0.0.1...
* Connected to localhost (127.0.0.1) port 8080 (#0)
> GET /myApplication/test?sample=value HTTP/1.1
> Host: localhost:8080
> User-Agent: curl/7.47.0
> Accept: */*
> 
< HTTP/1.1 200 
< Content-Type: application/json;charset=utf-8
< Content-Length: 78
< Date: Thu, 26 Apr 2018 08:08:31 GMT
< 

Мой пользовательский CorsFilter прекрасно работает в моем приложении.

Что я не так сделал? Как настроить apache CorsFiler в моем приложении вместо пользовательского CorsFiler ??

Пожалуйста, укажите ваши данные.

1 Ответ

0 голосов
/ 26 апреля 2018

Я также обнаружил аналогичную проблему с рамкой пружины. Я решил это, добавив X-XSRF-TOKEN в заголовок ответа.

Попробуйте добавить. Это может решить проблему.

res.addHeader("Access-Control-Allow-Headers", "x-requested-with, authorization, Content-Type, Authorization, credential, X-XSRF-TOKEN");
...