CPRS(크로스 원본 리소스 공유) 기능은 요청 시 클라이언트에 정책 정보를 제공하고 요청이 정책을 준수하는지를 확인하여 클라이언트 측 크로스 원본 요청을 조절합니다. 이 기능은 필요할 때 구성하고 사용하도록 설정할 수 있습니다.

정책에는 수락될 수 있는 HTTP 메서드 집합, 요청을 시작할 수 있는 위치 및 유효한 컨텐츠 유형이 포함됩니다. 이러한 정책은 요청 URL에 따라 다르며 locked.properties 파일에 항목을 추가하여 필요에 따라 다시 구성할 수 있습니다.

속성 이름 뒤에 있는 생략 부호는 속성이 목록을 수락할 수 있음을 나타냅니다.

표 1. CORS 속성
속성 값 유형 주요 기본값 기타 기본값
enableCORS true

false

true n/a
acceptContentType... http-content-type application/x-www-form-urlencoded,application/xml,text/xml admin=application/json,application/text,application/x-www-form-urlencoded

portal=application/json

rest=application/json

sse=application/json

view-vlsi-rest=application/json

acceptHeader... http-header-name * admin=Accept,Accept-Encoding,Accept-Charset,Accept-Language,Authorization,Cache-Control,Connection,Content-Language,Content-Length,Content-Type,Cookie,csrftoken,DNT,Host,Origin,Referer,User-Agent

broker=Accept,Accept-Encoding,Accept-Charset,Accept-Language,Authorization,Connection,Content-Language,Content-Length,Content-Type,Cookie,Gateway-Location,Gateway-Name,Gateway-Type,Host,Origin,Referer,User-Agent,X-CSRF-Token,X-EUC-Gateway,X-EUC-Health,X-Forwarded-For,X-Forwarded-Host,X-Forwarded-Proto

portal=Accept,Accept-Encoding,Accept-Charset,Accept-Language,Authorization,Connection,Content-Language,Content-Length,Content-Type,Cookie,Host,Origin,Referer,User-Agent,X-CSRF-Token

rest=Accept,Accept-Encoding,Accept-Charset,Accept-Language,Authorization,Connection,Content-Language,Content-Length,Content-Type,Cookie,csrfToken,Host,Origin,Referer,User-Agent,X-Require-Cloud-Admin-Privilege

view-vlsi=Accept,Accept-Encoding,Accept-Charset,Accept-Language,Authorization,Connection,Content-Language,Content-Length,Content-Type,Cookie,csrfToken,Host,Origin,Referer,User-Agent,X-Require-Cloud-Admin-Privilege

view-vlsi-rest=Accept,Accept-Encoding,Accept-Charset,Accept-Language,Authorization,Connection,Content-Language,Content-Length,Content-Type,Cookie,csrfToken,Host,Origin,Referer,User-Agent,X-Require-Cloud-Admin-Privilege

exposeHeader... http-header-name * n/a
filterHeaders true

false

true n/a
checkOrigin true

false

true n/a
checkReferer true

false

false n/a
allowCredentials true

false

false admin =true

broker=true

health=true

misc =true

portal=true

rest=true

saml=true

sse=true

tunnel=true

view-vlsi=true

view-vlsi-rest=true

allowMethod... http-method-name GET,HEAD,POST health =GET,HEAD

misc =GET,HEAD

rest=GET,POST,PUT, PATCH,DELETE

saml =GET,HEAD

sse=GET,POST

tunnel=GET,POST

allowPreflight true

false

true n/a
maxAge cache-time 0 n/a
balancedHost... load-balancer-name OFF n/a
portalHost... gateway-name OFF n/a
chromeExtension... chrome-extension-hash ppkfnjlimknmjoaemnpidmdlfchhehel
참고: 이 값은 Chrome용 Horizon Client에 대한 Chrome 확장 ID입니다.
n/a

다음은 locked.properties 파일의 CORS 속성 예제입니다.

enableCORS = true
allowPreflight = true
checkOrigin = true
checkOrigin-misc = false
allowMethod.1 = GET
allowMethod.2 = HEAD
allowMethod.3 = POST
allowMethod-saml.1 = GET
allowMethod-saml.2 = HEAD
acceptContentType.1 = application/x-www-form-urlencoded
acceptContentType.2 = application/xml
acceptContentType.3 = text/xml

원본 검사

원본 검사는 기본적으로 사용되도록 설정됩니다. 사용하도록 설정하면 원본이 없거나, 원본이 외부 URL에 지정된 주소, balancedHost 주소, portalHost 주소, chromeExtension 해시, null 또는 localhost인 경우에만 요청이 수락됩니다. 원본이 이러한 항목 중 하나가 아니면 "예기치 않은 원본" 오류가 로깅되고 상태 404가 반환됩니다.

참고: 일부 브라우저는 원본 헤더를 제공하지 않거나 항상 제공하지 않습니다. 선택적으로 원본 헤더가 없으면 요청하여 Referer 헤더를 확인할 수 있습니다. Referer 헤더의 헤더 이름에는 "r"이 하나 있습니다. Referer 헤더를 확인하려면 locked.properties 파일에 다음 속성을 추가하십시오.
checkReferer=true

여러 개의 연결 서버 호스트가 로드 밸런싱된 경우 locked.properties 파일에 balancedHost 항목을 추가하여 로드 밸런서 주소를 지정해야 합니다. 이 주소에서는 포트 443이 가정됩니다.

클라이언트가 Unified Access Gateway 장치 또는 다른 게이트웨이를 통해 연결되면 portalHost 항목을 locked.properties 파일에 추가하여 모든 게이트웨이 주소를 지정해야 합니다. 이러한 주소에서는 포트 443이 가정됩니다. 또한 portalHost 항목을 지정하여 외부 URL이 지정하는 이름과 다른 이름으로 연결 서버 호스트에 대한 액세스를 제공해야 합니다.

Chrome 확장 클라이언트는 초기 원본을 고유한 ID로 설정합니다. 연결이 성공하려면 locked.properties 파일에 chromeExtension 항목을 추가하여 확장을 등록합니다. 예:
chromeExtension.1=bpifadopbphhpkkcfohecfadckmpjmjd 

호스트 검사 항목도 참조하십시오.