CORSの設定
CORSは、クロスオリジンリソース共有(Cross-Origin Resource Sharing)の略です。 オリジンとは別のドメインにあるWebサーバーであり、リソースは画像、PDF、HTMLファイルなど、サーバーに保存されているアセットです。 別のオリジンに保存されているリソースを要求する必要がある場合があります。 これはクロスオリジン要求と呼ばれ、Webサーバーにはそのような要求を許可または拒否するポリシーがあります。
たとえば、ブラウザ自体は、 クロスサイトスクリプト 攻撃を軽減するために、スクリプトからのクロスオリジンAJAXスタイルの要求を許可していません。 これらのAPIは 同一オリジン のポリシーに従います。 ただし、特定のリソースについては、Liferay DXPがそれらを異なるオリジンに提供できるようにすると便利な場合があります。
たとえば、Docs & Mediaで画像を管理している場合、それらに対してクロスオリジン要求を許可することができます。 Liferay Portalの一致するURLまたはJAX-RSアプリケーションリソースに対してCORSを有効にできます。
Liferay DXPサービス用にCORSを有効にする
設定は、[設定] → [システム設定]→ [セキュリティ] → [Security Tools] → [Portal Cross Resource Origin Sharing (CORS)]にあります。
-
[Add] をクリックして構成エントリを作成します。
-
フォームのフィールドに入力します。 完了したら、 [Save] をクリックします。
ポータルCORS構成リファレンス
設定 | Description |
---|---|
有効 | エントリを有効にするには、このボックスをオンにします。 |
名前 | 構成エントリに名前を付けます。 |
URLパターン | プラスボタンを使用して、必要な数のパターンを追加します。 共有するリソースへのURLと一致するパターンを定義します。 たとえば、ナレッジベースアプリケーションに多くの添付ファイルがある場合、パターン/knowledge_base/* を定義できます。これにより、以下の応答ヘッダーで設定したポリシーに適用できるように、ナレッジベースに格納されているリソースが定義されます。 |
CORS応答ヘッダー | プラスボタンを使用して、必要な数のヘッダーを追加します。 ここで、 CORSヘッダー に対しポリシーを定義します。 |
CORS を設定するには、設定ファイルを使用することもできます。
JAX-RSアプリケーション用にCORSを有効にする
設定は、[設定] → [システム設定]→ [セキュリティ] → [Security Tools] → [Web Contexts Resource Origin Sharing (CORS)]にあります。
-
[Add] をクリックして構成エントリを作成します。
-
フォームのフィールドに入力します。 完了したら、 [Save] をクリックします。
JAX-RS CORS構成リファレンス
設定 | 説明 |
---|---|
動的WebコンテンツのOSGiフィルター | LDAPスタイルの フィルター を定義して、このエントリーのCORSヘッダーが適用されるJAX-RSホワイトボードアプリケーションを定義します。 デフォルトのフィルターは(&(!(liferay.cors=false))(osgi.jaxrs.name=*)) です。このフィルターは、CORSヘッダーを、 liferay.cors=false プロパティなしでデプロイされたすべてのJAX-RSホワイトボードアプリケーションに適用します。 これは開発時に役立ちますが、本番環境では可能な限り狭い構成を使用してください。 |
URLパターン | プラスボタンを使用して、必要な数のパターンを追加します。 アクセスするWebサービスへのURLに一致するパターンを定義します。 |
CORS応答ヘッダー | プラスボタンを使用して、必要な数のヘッダーを追加します。 ここで、 CORSヘッダー に対しポリシーを定義します。 |
JAX-RS開発者は、 @CORS
アノテーションを使用して、デプロイされたアプリケーションのポリシーを設定できます。