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과(와) 일치하므로 /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" ]
    }
  ]
}