我正在尝试添加正则表达式以允许请求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中得到了一个解决方案,但我不确定我需要在文件中添加此代码到底在哪里。有人可以帮我吗?非常感谢。
感谢您保持第一篇文章的清晰,简洁,并包含相关信息,例如您的配置和意图。
除了全局通配符(*
)之外,Tomcat的CORS过滤器不支持允许的源列表中的通配符。该参数必须包含区分大小写的允许“Origin”值列表。
如果您想要增强此功能,可以创建自己的过滤器,扩展或复制逻辑CorsFilter
,但更改此方法以接受模式匹配。该方法是私有的,因此如果您扩展该类,则还需要修改所有调用方。
有关详细信息,请参阅Tomcat 9 CORS Filter documentation和CORS Filter isOriginAllowed
方法。