我需要从其他域访问身份服务器,我正在使用WSO2IS提供的REST端点进行登录,注册,用户信息等。
我尝试了以下配置,但没有成功:
答案 0 :(得分:0)
将以下配置添加到WSO2 Identity Server分发包中的<IS-HOME>/repository/resources/conf/templates/repository/conf/tomcat/web.xml.j2
。
请注意,以下示例摘自https://github.com/wso2/identity-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
的{{1}}中,添加要允许CORS的主机(您可以添加多个逗号分隔或空格分隔的值)。如果主机具有端口,则也应包括该端口。理想情况下,其格式应为<param-name>cors.allowOrigin</param-name>
。
以上也针对<protocol>://<host>:<port>
中的param-value
。添加您将需要的HTTP方法(您将始终需要OPTIONS方法,因为这是用于CORS检查的方法)。
您可以使用<param-name>cors.supportedMethods</param-name>
配置将URL配置为允许CORS。 <url-pattern>
意味着Identity Server的所有URL都允许使用CORS。
有关CORS过滤器配置的更多信息,请参考:http://software.dzhuvinov.com/cors-filter-configuration.html