在cors过滤器中添加正则表达式

问题描述 投票:0回答:1

我正在尝试添加正则表达式以允许请求https:// \ d + .xyz.com,例如Apache Tomcat 9上的web.xml文件中的https://1344.xyz.com。我在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错误。我在这个答案Access-Control-Allow-Origin wildcard subdomains, ports and protocols中得到了一个解决方案,但我不确定我需要在文件中添加此代码到底在哪里。有人可以帮我吗?非常感谢。

cors tomcat9
1个回答
1
投票

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

除了全局通配符(*)之外,Tomcat的CORS过滤器不支持允许的源列表中的通配符。该参数必须包含区分大小写的允许“Origin”值列表。

如果您想要增强此功能,可以创建自己的过滤器,扩展或复制逻辑CorsFilter,但更改此方法以接受模式匹配。该方法是私有的,因此如果您扩展该类,则还需要修改所有调用方。

有关详细信息,请参阅Tomcat 9 CORS Filter documentation和CORS Filter isOriginAllowed方法。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.