在CORS滤波器中添加正则表达



我正在尝试添加一个正则表达式,以允许请求https:// d .xyz.com,例如https://1344.xyz.com在apache tomcat上的web.xml文件中9.我正在Web.xml文件中添加以下表达式:

    <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>https://d+.xyz.com,http://example.com  <!-- another non regex origin format   --></param-value>

它无法正常工作,并给出403错误。我在这个答案中为此找到了解决方案访问控制 - 允许原始通配符子域,端口和协议但是我不确定我需要在文件中添加此代码到底在哪里。有人可以帮我吗?非常感谢。

感谢您使您的第一篇文章清晰,简洁,并包含相关信息,例如您的配置和意图。

tomcat的CORS滤波器不支持允许的原始列表中的通配符,除了全球通配符(*)。该参数必须包括允许的"原点"值的列表。

如果要增强它,则可以创建自己的过滤器扩展或复制逻辑CorsFilter,但更改此方法以接受模式匹配。该方法是私有的,因此,如果您扩展了类,那么您也需要修改所有呼叫者。

有关更多信息,请参见Tomcat 9 CORS过滤器文档和CORS Filter isOriginAllowed方法。

最新更新