CORSの設定
CORSは、クロスオリジンリソース共有(Cross-Origin Resource Sharing)の略です。 オリジンとは別のドメインにあるWebサーバーであり、リソースは画像、PDF、HTMLファイルなど、サーバーに保存されているアセットです。 別のオリジンに保存されているリソースを要求する必要がある場合があります。 これはクロスオリジン要求と呼ばれ、Webサーバーにはそのような要求を許可または拒否するポリシーがあります。
たとえば、ブラウザ自体は、 クロスサイトスクリプティング(XSS) 攻撃を軽減するために、スクリプトからのクロスオリジン AJAX スタイルのリクエストを許可しません。 これらのAPIは同一オリジンのポリシーに従います。 ただし、特定のリソースについては、Liferay DXPがそれらを異なるオリジンに提供できるようにすると便利な場合があります。
たとえば、ドキュメント & メディアで画像を管理する場合、それらの画像に対してクロスオリジン リクエストを許可する必要がある場合があります。 Liferay DXP 内の一致する URL または JAX-RS アプリケーション リソースに対して CORS を有効にすることができます。
Liferay DXPサービス用にCORSを有効にする
これらの設定にアクセスするには、
-
グローバル メニュー (
) を開き、 コントロール パネル → インスタンス設定に移動します。 -
セキュリティ → セキュリティ ツール → ポータル クロスオリジン共有 (CORS)に移動します。
-
[Add]をクリックして構成エントリを作成します。
-
フォームのフィールドに入力します。
-
[保存]をクリックします。

ポータルCORS構成リファレンス
| 設定 | 説明 |
|---|---|
| 有効 | エントリを有効にするには、このボックスをオンにします。 |
| 名前 | 構成エントリに名前を付けます。 |
| URLパターン | プラスボタンを使用して、必要な数のパターンを追加します。 共有するリソースへのURLと一致するパターンを定義します。 たとえば、ナレッジベースアプリケーションに多くの添付ファイルがある場合、パターン/knowledge_base/* を定義できます。これにより、以下の応答ヘッダーで設定したポリシーに適用できるように、ナレッジベースに格納されているリソースが定義されます。 |
| CORS応答ヘッダー | プラスボタンを使用して、必要な数のヘッダーを追加します。 ここで、 CORS ヘッダー のいずれかのポリシーを定義します。 |
設定ファイルを使用することもできます CORS を設定します。
システム設定の仮想インスタンス スコープの下に、ポータル クロスオリジン リソース共有 (CORS) エントリもあります。 これには、仮想インスタンスに対してすでに有効になっているデフォルトのポータル CORS 構成が含まれています。
JAX-RSアプリケーション用にCORSを有効にする
これらの設定にアクセスするには、
-
グローバル メニュー (
) を開き、 コントロール パネル → システム設定に移動します。 -
セキュリティ → セキュリティ ツール → Web コンテキスト クロス リソース オリジン共有 (CORS)に移動します。
-
[Add]をクリックして構成エントリを作成します。
-
フォームのフィールドに入力します。 完了したら、 「保存」をクリックします。

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 アノテーションを使用して、デプロイされたアプリケーションのポリシーを設定できます。