メインコンテンツまでスキップ
シングルテナンシー版:v2.4.0

CORS 対応

FRUCtoS サーバは tomcat のフィルターを利用することで CORS 対応が可能です。
FRUCtoS 構築時点では CORS 対応の設定は行われていません。

設定に際しての注意喚起​

CORS 対応の設定を有効にするには FRUCtoS サーバの再起動が必要です。
CORS 対応の有効/無効は FRUCtoS サーバで保持するリソースの内容に影響を与えません。

注意

CORS フィルター設定に際して、必要以上にセキュリティ強度を下げるのはリスクを伴います。
設定内容を十分に検討しユーザの責任で行ってください。

1. tomcat の CORS フィルターについて​

Apache Tomcat 9 Configuration Reference の CORS Filter を参照してください。
設定は WEB-INF/web.xml ファイルを編集して行います。

2. FRUCtoS サーバへの CORS フィルター設定追加手順例​

FRUCtoS サーバへ CORS フィルターの設定を追加する手順の例を以下に示します。
配布パッケージの fructos.war に含まれる WEB-INF/web.xml を編集します。

備考

fructos.war ファイルのバックアップが必要な場合は、適宜作成するか必要な時に配布パッケージから再取得してください。

macOS での操作に基いていますが Windows 環境でも同様の操作が行える想定です。

前提として 構築手順 通りに作業し Docker 環境で FRUCtoS サーバが正常起動している事とします。
fructos_docker 配下の tomcat/webapps ディレクトリで操作を行います。

fructos_docker ディレクトリ配下(抜粋)

$WORK
├── dist
│ ├── fructos_docker
│ │ └── tomcat
│ │ └── webapps
│ │ └── fructos.war

2.1 web.xml ファイル抽出​

jar コマンドで fructos.war から web.xml ファイルを抽出します。

jar xfv fructos.war WEB-INF/web.xml

画面には以下のメッセージが出力されます。

WEB-INF/web.xmlが展開されました
jar コマンド実行後の fructos_docker ディレクトリ配下(抜粋)

$WORK
├── dist
│ ├── fructos_docker
│ │ └── tomcat
│ │ └── webapps
│ │ ├── WEB-INF
│ │ │ └── web.xml
│ │ └── fructos.war

2.2 CORS フィルター追加​

抽出された web.xml ファイルに CORS フィルターを追加します。

備考

必要に応じて web.xml ファイルのバックアップを作成してください。

web.xml ファイルに以下のフィルター定義とフィルターマッピング定義を追加します。

 <!-- ===================== CORS Filter Definitions ====================== -->
<filter>
<filter-name>CorsFilter</filter-name>
<filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
<init-param>
<param-name>cors.allowed.origins</param-name>
<param-value>https://www.apache.org</param-value>
</init-param>
</filter>

<!-- ====================== CORS Filter Mappings ======================== -->
<filter-mapping>
<filter-name>CorsFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

2.3 web.xml ファイル更新​

編集した web.xml ファイルを使用して fructos.war 内の web.xml ファイルを更新します。

jar ufv fructos.war WEB-INF/web.xml

画面には以下のメッセージが出力されます。

WEB-INF/web.xmlを追加中です(入=7865)(出=1724)(78%収縮されました)

2.4 CORS フィルター設定反映( FRUCtoS サーバ再起動 )​

  1. 構築手順 『6. 停止と起動』に従い Keycloak Gateway、FRUCtoS を停止してください。
  2. 構築手順 『4.4.1. FRUCtoSサーバ』に従い FRUCtoSサーバの Dockerイメージ・コンテナを再作成してください。
  3. 構築手順 『6.4. Keycloak Gatewayの起動』に従い Keycloak Gateway を起動してください。

参考)動作確認​

必要に応じて CORS フィルター設定後の動作確認を行ってください。

Postman を使った動作確認例​

『2.2 CORS フィルター追加』と同様の設定を行った FRUCtoS サーバに対する動作確認の例。

リクエストヘッダーに Origin: https://www.apache.org を追加する。
レスポンスヘッダーに Access-Control-Allow-Origin: https://www.apache.org が追加される。

Postman を使った動作確認例