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" ]
    }
  ]
}