跨来源资源共享 (CORS) 功能通过向客户端按需提供策略声明,并通过检查策略合规性请求,来控制客户端的跨来源请求。此功能可在需要时进行配置和启用。
策略包含一组可获得接受的 HTTP 方法、请求的来源位置以及有效的具体内容类型。这些策略依据请求 URL 而异,可通过向 locked.properties 文件添加条目来根据需要进行重新配置。
属性名称后面的省略号表示该属性可以接受列表。
属性 | 值的类型 | 主默认值 | 其他默认值 |
---|---|---|---|
enableCORS | true false |
false | n/a |
acceptContentType... | http-content-type | application/x-www-form-urlencoded,application/xml,text/xml | flexadmin=application/x-amf admin=application/json,application/text,application/x-www-form-urlencoded portal=application/json view-vlsi-rest=application/json 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 flexadmin=true health=true misc =true portal=true rest=true saml=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 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。如果来源不是这些项中的任何一个,则会记录“意外来源”(Unexpected Origin) 错误并返回 404 状态。
checkReferer=true
如果使用多个连接服务器主机或安全服务器进行负载均衡,您必须在 locked.properties 文件中添加一个 balancedHost 条目以指定负载均衡器地址。该地址使用端口 443。
如果客户端通过 Unified Access Gateway 设备或其他网关进行连接,您必须在 locked.properties文件中添加 portalHost 条目以指定所有的网关地址。这些地址使用端口 443。您还必须指定 portalHost 条目,以通过与外部 URL 中指定的不同名称提供对连接服务器主机或安全服务器的访问。
Chrome 扩展客户端将初始来源设置为它们自己的身份。要成功进行连接,请在 locked.properties 文件中添加一个 chromeExtension 条目以注册此扩展。例如:
chromeExtension.1=bpifadopbphhpkkcfohecfadckmpjmjd