为Tomcat服务器的每个请求启用CORS

时间:2018-11-04 06:26:13

标签: tomcat

不使用Servlet过滤器,是否可以配置Tomcat 9.0.12(也许通过catalina.properties)以允许所有CORS请求,所有标头以及几乎每个请求?

1 个答案:

答案 0 :(得分:0)

Tomcat通过添加CorsFilter确实支持CORS。 在下面的示例中,配置足够灵活以拦截所有请求(请注意url-pattern):

<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应用程序级别(Web应用程序的web.xml中的更改)完成。

如果要“全局”应用此过滤器(针对可能部署在tomcat上的所有WAR),则可以选择配置tomcat本身,以便它将捕获所有可能的HTTP请求:

将上述配置添加到conf/web.xml中,就可以完成。

旁注:

如果您扩展了此过滤器或其他内容,并且由于某些原因需要一些其他依赖,则它们当然不会出现在WAR中,而必须位于tomcat本身的类路径中,因此请将所需的库放入{{1} }文件夹(同样,仅当您需要类似的东西时)