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과(와) 일치하므로 /api/data/documents 규칙을 무시합니다.
- 신임 정보 처음 두 가지 규칙에서는 신임 정보(
"allowCredentials": true)가 허용되지만 세 번째 규칙에서는 허용되지 않습니다. DAS(Domino 액세스 서비스) freebusy 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" ]
}
]
}