CORS JSON 配置示例
以下是 cors-rules.json 的示例内容。
此示例 JSON 文件内容说明了以下要点:
- 规则优先顺序按照规则在文件中的出现顺序对规则进行评估,一旦找到匹配项,评估立即停止。在此例中,前两个规则均适用于源 http://this.example.com 和 http://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" ]
}
]
}