tomcat - 使用 Tomcat 服务器为每个请求启用 CORS

标签 tomcat

在不使用 Servlet 过滤器的情况下,有没有办法配置 Tomcat 9.0.12(可能通过 catalina.properties)以允许所有 CORS 请求、所有 header 和几乎每个请求?

最佳答案

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 本身的类路径中,所以将所需的库放入 lib 文件夹(同样,只有当你需要这样的东西时)

有用的资源:

关于tomcat - 使用 Tomcat 服务器为每个请求启用 CORS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53138315/

相关文章:

java - 是否有可能不关闭数据库连接成为 Tomcat 上 Java 中堆溢出的原因?

java - ClassNotFoundException : com. allen_sauer.gwt.log.client.WrappedClientThrowable

java - Tomcat 7 启动问题 : Could not initialize class org. apache.tomcat.util.descriptor.DigesterFactory

maven - 使用 maven cargo 插件部署到 $CATALINA_HOME

java - URL 在 webapps 文件夹中不存在

Tomcat 用户未使用 Jenkins 和 Gitosis 正确中继 SSH key

java - 在 tomcat 7 上部署 Spring Boot War 时出现问题

java - ProcessBuilder Java 启动成功但 Tomcat 启动失败

java - Webapp 在实例化 PoolingHttpClientConnectionManager 时停止

tomcat - 在 JBoss AS 5.x 中使用 Tomcat 连接池