我正在尝试添加一个正则表达式,以允许请求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
方法。