Как разрешить доступ к CORS в WSO2IS 5.10.0 - PullRequest
0 голосов
/ 24 апреля 2020

Мне нужен доступ к моему серверу идентификации из другого домена, я использую конечные точки REST, предоставленные WSO2IS для входа в систему, регистрации, информации о пользователе и т. Д. c.

Я пробовал следующую конфигурацию без любой успех:

  1. https://docs.wso2.com/display/IS530/Invoking+an+Endpoint+from+a+Different+Domain
  2. http://hasanthipurnima.blogspot.com/2016/05/applying-cors-filter-to-wso2-identity.html
  3. CORS заблокирован в идентификаторе wso2 сервер

1 Ответ

0 голосов
/ 24 апреля 2020

Добавьте приведенную ниже конфигурацию к <IS-HOME>/repository/resources/conf/templates/repository/conf/tomcat/web.xml.j2 в дистрибутиве WSO2 Identity Server.

Обратите внимание, что ниже приведен пример, взятый из 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 из <param-name>cors.allowOrigin</param-name> Добавьте хосты, для которых вы хотите разрешить CORS (вы можете добавить несколько значений через запятую или через пробел) , Если у хоста есть порт, он также должен быть включен. В идеале это должно быть в формате <protocol>://<host>:<port>.

Также в вышеупомянутом случае для param-value из <param-name>cors.supportedMethods</param-name>. Добавьте необходимые вам методы HTTP (вам всегда понадобится метод OPTIONS, так как он используется для проверки CORS).

Вы можете настроить URL-адреса, чтобы разрешить CORS, используя конфигурацию <url-pattern>. <url-pattern>/*</url-pattern> означает, что CORS разрешен для всех URL-адресов Identity Server.

Для получения дополнительной информации о конфигурациях фильтра CORS см. http://software.dzhuvinov.com/cors-filter-configuration.html

...