La función para compartir recursos de distintos orígenes (CORS) regula las solicitudes de diferentes orígenes del cliente. Para ello, proporciona declaraciones de directivas al cliente a demanda y comprueba que cumplen la directiva. Esta función se puede configurar y se puede habilitar si es necesario.

Las directivas incluyen el conjunto de métodos HTTP que se aceptan, los posibles orígenes de las solicitudes y los tipos de contenido válidos. Estas directivas varían en función de la URL de solicitud y se pueden reconfigurar según sea necesario. Para ello, agregue entradas al archivo locked.properties.

Los puntos suspensivos después de un nombre de propiedad indican que esta puede aceptar una lista.

Tabla 1. Propiedades CORS
Propiedad Tipo de valor Principal predeterminado Otros valores predeterminados
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
Nota: Este valor es el ID de la extensión de Chrome para Horizon Client para Chrome.
n/a

A continuación, aparecen ejemplos de propiedades CORS en el archivo locked.properties.

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

Comprobación del origen

La comprobación del origen está habilitada de forma predeterminada. Cuando está habilitada, se aceptan solicitudes sin origen o con un origen igual a la dirección especificada en la URL externa, la dirección balancedHost, cualquier dirección portalHost, cualquier hash chromeExtension, null o localhost. Si el origen no es una de estas posibilidades, se registra el error "Origen inesperado" y devuelve el estado 404.

Nota: Algunos navegadores no ofrecen ningún encabezado Origen o no siempre ofrecen uno. De forma opcional, se puede marcar el encabezado Sitio de referencia si no aparece el encabezado Origen. El encabezado Sitio de referencia tiene una "r" en el nombre del encabezado. Para comprobar el encabezado Sitio de referencia, agregue la siguiente propiedad al archivo locked.properties:
checkReferer=true

Si varios hosts de los servidores de conexión tienen la carga equilibrada, debe especificar la dirección del equilibrador de carga agregando una entrada balancedHost al archivo locked.properties. Se supone que en esta dirección el puerto es el 443.

Si el cliente se conecta mediante un dispositivo de Unified Access Gateway u otra puerta de enlace, debe especificar todas las direcciones de puerta de enlace agregando entradas portalHost al archivo locked.properties. Se supone que en estas direcciones el puerto es el 443. También debe especificar entradas portalHost para ofrecer acceso al host del servidor de conexión por un nombre diferente al nombre que especifica la URL externa.

Los clientes de la extensión de Chrome asignan su origen inicial a su propia identidad. Para que las conexiones se realicen correctamente, agregue una entrada chromeExtension al archivo locked.properties para registrar la extensión. Por ejemplo:

chromeExtension.1=bpifadopbphhpkkcfohecfadckmpjmjd