CORS JSON 配置示例

以下是 cors-rules.json 的示例内容。

此示例 JSON 文件内容说明了以下要点:
  • 规则优先顺序按照规则在文件中的出现顺序对规则进行评估,一旦找到匹配项,评估立即停止。在此例中,前两个规则均适用于源 http://this.example.comhttp://that.example.com。第一个规则允许对匹配 /api/data/documents 的资源进行只读访问 ("GET")。第二个规则允许对匹配 /api/data 的其他资源进行读写访问。由于 /api/data/documents/api/data 更具体,因此必须首先考虑。如果两个规则的顺序相反,那么 CORS 过滤器将忽略 /api/data/documents 规则,因为 /api/data/documents 的请求匹配 /api/data
  • 凭证前两个规则允许凭证 ("allowCredentials": true),但第三个规则不允许。由于 Domino Access Services (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" ]
    }
  ]
}