CORS JSON 設定例
cors-rules.json のコンテンツの例を次に示します。
この JSON ファイルの例のコンテンツは、次の重要な点を示しています。
- ルールの優先順位 ルールはファイルに表示される順序で評価され、一致が見つかると評価は停止します。この例では、最初の 2 つのルールはどちらも起点 http://this.example.com および http://that.example.comに適用されます。最初のルールは、/api/data/documents に一致するリソースに対する読み取り専用アクセス (「GET」) を許可します。2 番目のルールは、/api/data に一致する他のリソースへの読み取り/書き込みアクセスを許可します。/api/data/documents は /api/data より具体的なので、優先されなくてはなりません。2 つの規則の順序が逆の場合、/api/data/documents の要求が /api/data と一致するため、CORS フィルターは /api/data/documents ルールを無視します。
- 資格情報 最初の 2 つのルールでは資格情報 (
"allowCredentials": true
) が許可されますが、3 番目のルールでは許可されません。Domino アクセス・サービス (DAS) の空き時間情報 API は匿名要求を許可することが意図されているため、/api/freebusy に一致する要求の資格情報を受け入れる必要はありません。 - デフォルト動作 リソースに一致するルールが見つからない場合、クロスオリジン要求は無効になります。/api/calendar に一致するリソースのためのルールはありません。したがって、次の設定では、DAS カレンダー API のクロスオリジン要求が無効になります。デフォルトでは、常にクロスオリジン要求を無効にします。
{
"version": "1.0",
"rules": [
{
"resource": {
"path": "/api/data/documents"
},
"allowOrigins": [ "http://this.example.com", "http://that.example.com" ],
"allowMethods": [ "GET" ],
"allowCredentials": true
},
{
"resource": {
"path": "/api/data"
},
"allowOrigins": [ "http://this.example.com", "http://that.example.com" ],
"allowMethods": [ "GET", "POST", "PUT", "DELETE" ],
"allowCredentials": true,
},
{
"resource": {
"path": "/api/freebusy"
},
"allowOrigins": [ "http://this.example.com" ],
"allowMethods": [ "GET" ]
}
]
}