我需要从不同的域访问我的身份服务器,我使用WSO2IS提供的REST端点进行登录、注册、用户信息等。
我尝试了以下配置,但没有成功。
添加以下配置到 <IS-HOME>/repository/resources/conf/templates/repository/conf/tomcat/web.xml.j2
WSO2 Identity Server发行包中。
请注意,下面是一个样本,取自 https:/github.comwso2identity-apps#run-in-dev-mode。. 这对你来说应该也是有效的。
<filter>
<filter-name>CORS</filter-name>
<filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>
<init-param>
<param-name>cors.allowOrigin</param-name>
<param-value>https://localhost:9000, https://localhost:9001</param-value>
</init-param>
<init-param>
<param-name>cors.supportedMethods</param-name>
<param-value>GET, HEAD, POST, DELETE, OPTIONS, PATCH, PUT</param-value>
</init-param>
<init-param>
<param-name>cors.exposedHeaders</param-name>
<param-value>Location</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CORS</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
在上面的 param-value
的 <param-name>cors.allowOrigin</param-name>
添加你想允许CORS的主机(你可以添加多个以逗号或空格分隔的值)。如果主机有端口,那也应该包括在内。理想情况下,它的格式应该是 <protocol>://<host>:<port>
.
也在上述为 param-value
的 <param-name>cors.supportedMethods</param-name>
. 添加你需要的HTTP方法(你总是需要OPTIONS方法,因为那是用于CORS检查的方法)。
您可以通过使用 <url-pattern>
配置。<url-pattern>/*</url-pattern>
意味着CORS允许用于身份服务器的所有URL。
更多关于CORS过滤器配置的信息,请参考: http:/software.dzhuvinov.comcors-filter-configuration.html。