如何在WSO2IS 5.10.0中允许CORS访问?

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

我需要从不同的域访问我的身份服务器,我使用WSO2IS提供的REST端点进行登录、注册、用户信息等。

我尝试了以下配置,但没有成功。

  1. https:/docs.wso2.comdisplayIS530Invoking+an+Endpoint+from+a+Different+Domain。
  2. http:/hasanthipurnima.blogspot.com201605applying-cor-filter-to-wso2-identity.html。
  3. CORS在wso2身份服务器中被屏蔽
wso2 wso2is
1个回答
0
投票

添加以下配置到 <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。

© www.soinside.com 2019 - 2024. All rights reserved.