20.8.4. CORS
REST サーバーは、リクエストの起点に基づくプリフライトとルールを含む CORS をサポートします。
例:
<rest-connector name="rest1" socket-binding="rest" cache-container="default">
<cors-rules>
<cors-rule name="restrict host1" allow-credentials="false">
<allowed-origins>http://host1,https://host1</allowed-origins>
<allowed-methods>GET</allowed-methods>
</cors-rule>
<cors-rule name="allow ALL" allow-credentials="true" max-age-seconds="2000">
<allowed-origins>*</allowed-origins>
<allowed-methods>GET,OPTIONS,POST,PUT,DELETE</allowed-methods>
<allowed-headers>Key-Content-Type</allowed-headers>
</cors-rule>
</cors-rules>
</rest-connector>
ルールは、ブラウザーによって設定された "Origin" ヘッダーに基づいて順番に評価されます。オリジンが "http://host1" または "https://host1" のいずれかである場合、ルール "restrict host1" が適用されます。そうでない場合は、次のルールがテストされます。"allow ALL" ルールはすべてのオリジンを許可するため、別のオリジンから送信されるすべてのスクリプトは指定されたメソッドを実行し、指定されたヘッダーを使用できます。
<cors-rule> 要素は、以下のように設定できます。
| Config | 説明 | 必須 |
|---|---|---|
| name | 仮想マシンの名前 | はい |
| allow-credentials | CORS リクエストがクレデンシャルを使用できるようにします。 | いいえ |
| allowed-origins | CORS 'Access-Control-Allow-Origin' ヘッダーを設定するために使用されるコンマ区切りリストで、応答がオリジンと共有されることを示します。 | はい |
| allowed-methods | 設定されたオリジンで許可されるメソッドを指定するために、プリフライト応答に CORS の 'Access-Control-Allow-Methods' ヘッダーを設定するために使用されるカンマ区切りリスト。 | はい |
| max-age-seconds | CORS preflight リクエストヘッダーをキャッシュできる時間 | いいえ |
| expose-headers | 設定したオリジンに公開できるヘッダーを指定するためのプリフライト応答に CORS 'Access-Control-Expose-Headers' を設定するために使用されるコンマ区切りリスト。 | いいえ |