設定ガイド for クロスドメイン(CORS)

Alfresco 6.2+, 7.0+

  1. /opt/alfresco/content-services/tomcat/shared/classes/alfresco-global.propertiesを編集します。

    cors.enabled=true
    cors.allowSubdomains=true
    cors.allowed.origins=https://alfresco.sample.net,https://jira.sample.net
    cors.allowed.methods=GET,HEAD,POST,PUT,DELETE,OPTIONS
    cors.allowed.headers=Accept,Access-Control-Request-Headers,Access-Control-Request-Method,Authorization,Content-Type,Cache-Control,X-Requested-With,X-CSRF-Token
    cors.exposed.headers=Access-Control-Allow-Origin,Access-Control-Allow-Credentials
    cors.support.credentials=true
    cors.preflight.maxage=10
    cors.allowGenericHttpRequests=true
  2. cors.allowed.originsのパラメーターにクロスドメインでのアクセスを許可するURLを指定する。
    (アスタリスクは利用できません。ConfluenceとAlfresco URLの
    両方を指定してください)
  3. Restart Alfresco

※CORS設定の詳細は以下のドキュメントをご参考ください。

Alfresco 5.2 - 6.1

  1. /opt/alfresco-content-services/tomcat/webapps/alfresco/WEB-INF/lib と cors-filter-2.5.jar, java-property-utils-1.9.1.jarが配置されていることを確認します。

  2. /opt/alfresco-content-services/tomcat/webapps/alfresco/WEB-INF/web.xmlを編集します。
  3. <!-- CORS Filter Begin -->から<!-- CORS Filter End -->のコメント化されているfilter要素をコメント解除します。

       <!-- CORS Filter Begin -->
       <filter>
          <filter-name>CORS</filter-name>
          <filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>
          <init-param>
             <param-name>cors.allowGenericHttpRequests</param-name>
             <param-value>true</param-value>
          </init-param>
          <init-param>
             <param-name>cors.allowOrigin</param-name>
             <param-value>http://localhost:8081</param-value>
          </init-param>
          <init-param>
             <param-name>cors.allowSubdomains</param-name>
             <param-value>true</param-value>
          </init-param>
          <init-param>
             <param-name>cors.supportedMethods</param-name>
             <param-value>GET, HEAD, POST, PUT, DELETE, OPTIONS</param-value>
          </init-param>
          <init-param>
             <param-name>cors.supportedHeaders</param-name>     <param-value>origin, authorization, x-file-size, x-file-name, content-type, accept, x-file-type</param-value>
          </init-param>
          <init-param>
             <param-name>cors.supportsCredentials</param-name>
             <param-value>true</param-value>
          </init-param>
          <init-param>
             <param-name>cors.maxAge</param-name>
             <param-value>3600</param-value>
          </init-param>
       </filter>
       <!-- CORS Filter End -->
  4. init-param要素のcors.allowOriginパラメーターで指定されているURLにクロスドメインでのアクセスを許可するURLを指定する。
    (ここではすべてのURLからのアクセスを許可する場合はアスタリスクとしていますが環境に応じて適切なURLを指定してください)

          <init-param>
             <param-name>cors.allowOrigin</param-name>
             <!--param-value>http://localhost:8081</param-value-->
             <param-value>*</param-value>
          </init-param>
  5. <!-- CORS Filter Mappings Begin -->から<!-- CORS Filter Mappings End -->のコメント化されているfilter-mapping要素をコメント解除します。

       <!-- CORS Filter Mappings Begin -->
       <filter-mapping>
          <filter-name>CORS</filter-name>
          <url-pattern>/api/*</url-pattern>
          <url-pattern>/service/*</url-pattern>
          <url-pattern>/s/*</url-pattern>
          <url-pattern>/cmisbrowser/*</url-pattern>
       </filter-mapping>
       <!-- CORS Filter Mappings End -->
  6. Alfrescoを再起動します。

Alfresco 5.0.2 - 5.1

※記載されているバージョンについてはお客様の環境のバージョンへ読み替えてください。

1./opt/alfresco/tomcat/webapps/alfresco/WEB-INF/lib に cors-filter-1.9.3.jar、java-property-utils-1.9.1.jar が配置されていることを確認します。

2./opt/alfresco/tomcat/webapps/alfresco/WEB-INF/web.xml を編集します。

<!-- CORS Filter Begin --> から <!-- CORS Filter End --> のコメント化されている filter 要素をコメント解除します。

   <!-- CORS Filter Begin -->
   <filter>
      <filter-name>CORS</filter-name>
      <filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>
      <init-param>
         <param-name>cors.allowGenericHttpRequests</param-name>
         <param-value>true</param-value>
      </init-param>
      <init-param>
         <param-name>cors.allowOrigin</param-name>
         <param-value>http://localhost:8081</param-value>
      </init-param>
      <init-param>
         <param-name>cors.allowSubdomains</param-name>
         <param-value>true</param-value>
      </init-param>
      <init-param>
         <param-name>cors.supportedMethods</param-name>
         <param-value>GET, HEAD, POST, PUT, DELETE, OPTIONS</param-value>
      </init-param>
      <init-param>
         <param-name>cors.supportedHeaders</param-name>
      </init-param>
      <init-param>
         <param-name>cors.supportsCredentials</param-name>
         <param-value>true</param-value>
      </init-param>
      <init-param>
         <param-name>cors.maxAge</param-name>
         <param-value>3600</param-value>
      </init-param>
   </filter>
   <!-- CORS Filter End -->


4.init-param 要素の cors.allowOrigin パラメーターで指定されている URL にクロスドメインでのアクセスを許可する URL を指定します。
(ここではすべての URL からのアクセスを許可する場合はアスタリスクとしていますが環境に応じて適切な URL を指定してください)

      <init-param>
         <param-name>cors.allowOrigin</param-name>
         <!--param-value>http://localhost:8081</param-value-->
         <param-value>*</param-value>
      </init-param>

5.<!-- CORS Filter Mappings Begin -->から<!-- CORS Filter Mappings End -->のコメント化されている filter-mapping 要素をコメント解除します。

   <!-- CORS Filter Mappings Begin -->
   <filter-mapping>
      <filter-name>CORS</filter-name>
      <url-pattern>/api/*</url-pattern>
      <url-pattern>/service/*</url-pattern>
      <url-pattern>/s/*</url-pattern>
      <url-pattern>/cmisbrowser/*</url-pattern>
   </filter-mapping>
   <!-- CORS Filter Mappings End -->

6.Alfresco を再起動します。

Alfresco 5.0.1

1. cors-filter-2.4.jarjava-property-utils-1.9.1.jarを /opt/alfresco/tomcat/webapps/alfresco/WEB-INF/lib に配置します。

2./opt/alfresco/tomcat/webapps/alfresco/WEB-INF/web.xml を下記のように編集します。

<filter>要素のCORSはどこに設定しても問題はありません。
ただし、<filter-mapping> は Global Localization Filter の後、CMIS security context cleaning filte rの前にする必要があるそうです。
   <filter>
      <filter-name>JSF Session Synchronized Filter</filter-name>
      <filter-class>org.alfresco.repo.web.filter.beans.SessionSynchronizedFilter</filter-class>
   </filter>
 
   <!-- ここから追加 -->
   <filter>
      <filter-name>CORS</filter-name>
      <filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>
      <init-param>
         <param-name>cors.allowOrigin</param-name>
         <param-value>*</param-value>
      </init-param>
      <init-param>
         <param-name>cors.allowSubdomains</param-name>
         <param-value>true</param-value>
      </init-param>
      <init-param>
         <param-name>cors.supportedMethods</param-name>
         <param-value>GET, POST, HEAD, PUT, DELETE, OPTIONS</param-value>
      </init-param>
      <init-param>
         <param-name>cors.supportedHeaders</param-name>
         <param-value>Content-Type, Accept, Authorization</param-value>
      </init-param>
   </filter>
   <!-- ここまで追加 -->
   <filter-mapping>
      <filter-name>Global Localization Filter</filter-name>
      <url-pattern>/*</url-pattern>
      <dispatcher>REQUEST</dispatcher>
   </filter-mapping>
 
   <!-- ここから追加 -->
   <filter-mapping>
      <filter-name>CORS</filter-name>
      <url-pattern>/api/*</url-pattern>
      <url-pattern>/service/*</url-pattern>
      <url-pattern>/s/*</url-pattern>
      <url-pattern>/cmisbrowser/*</url-pattern>
   </filter-mapping>
   <!-- ここまで追加 -->
 
   <filter-mapping>
      <filter-name>CMIS security context cleaning filter</filter-name>
      <url-pattern>/cmisws/*</url-pattern>
   </filter-mapping>

3.Alfrescoを再起動します。


参考情報

CORSに間して

Cross-origin resource sharing
W3C Cross-Origin Resource Sharing
Using CORS

AlfrescoのCORSモジュールに関する情報は下記となります。

http://www.slideshare.net/jottley/cors-enable-alfresco-for-cors

http://software.dzhuvinov.com/cors-filter-installation.html

http://software.dzhuvinov.com/cors-filter-configuration.html

リックソフト株式会社 は、日本でトップレベルのAtlassian Platinum Solution Partnerです。
大規模ユーザーへの対応実績が認められたEnterpriseの認定をうけ、高度なトレーニング要件をクリアし、小規模から大規模のお客様まで対応可能な実績を示したパートナー企業です。


Copyright © Ricksoft Co., Ltd. プライバシーポリシー お問い合わせ