Где в файле web.xml я должен установить параметр фильтра, чтобы включить CORS для JSPpages в Tomcat? - PullRequest
0 голосов
/ 03 июня 2019

У нас есть веб-приложение со следующим web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app ...>
  <servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.jsf</url-pattern>
  </servlet-mapping>
  <context-param>
    <param-name>javax.faces.PROJECT_STAGE</param-name>
    <param-value>Development</param-value>
  </context-param>
  <context-param>
    <description>State saving method: 'client' or 'server' (default). See JSF Specification section 2.5.2</description>
    <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
    <param-value>client</param-value>
  </context-param>
  <welcome-file-list>
    <welcome-file>index.jsf</welcome-file>
    <welcome-file>welcome.jsf</welcome-file>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <listener>
    <listener-class>net.halloleo.utils.ContextListener</listener-class>
  </listener>
</web-app>

Я попытался добавить CORS в это веб-приложение, добавив фильтр CORS в конце web.xml непосредственно перед закрывающим тегом веб-приложения, т. Е .:

.
.
.
  <listener>
    <listener-class>net.halloleo.utils.ContextListener</listener-class>
  </listener>
  <filter>
    <filter-name>CorsFilter</filter-name>
    <filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>CorsFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>  
</web-app>

, но CORS не включен для страниц JSP, таких как http://my.domain/data.jsp?step=3&shape=5. Я даже добавил значение по умолчанию для cors.exposed.headers через

    <init-param>
      <param-name>cors.exposed.headers</param-name>
      <param-value>Access-Control-Allow-Origin,Access-Control-Allow-Credentials</param-value>
    </init-param>

но это тоже не улучшилось. - Где в web.xml поставить настройку фильтра CORS, чтобы страницы JSP обслуживались с помощью CORS?

...