Configuración de cabeceras de Compartición de recursos entre orígenes (CORS)

HCL Commerceda soporte al uso compartido de recursos entre orígenes (CORS). El filtro de servlet HttpSecurityFilter da soporte a la configuración de cabeceras relacionadas con CORS incluidas en la respuesta de HTTP. Puede configurar el filtro al ampliar el archivo de configuración de componente (wc-component.xml).

Por qué y cuándo se efectúa esta tarea

El servlet HttpSecurityFilter da soporte a las cabeceras de respuesta de CORS definidas en la especificación CORS:
  • Access-Control-Allow-Origin
  • Access-Control-Allow-Credentials
  • Access-Control-Expose-Headers
  • Access-Control-Max-Age
  • Access-Control-Allow-Methods
  • Access-Control-Allow-Headers
Este tema describe cómo configurar estas cabeceras al crear y modificar un archivo de configuración personalizado.
Nota: HCL CommerceEl soporte de CORS incluye la posibilidad de incluir varios dominios en la lista blanca. Los cambios de configuración que realice en las cabeceras relacionadas con CORS se aplicarán a todos los dominios de la lista blanca.

Procedimiento

  1. Cree un archivo de configuración de componente de fundamentos personalizado (wc-component.xml), si no existe ninguno:
    Para obtener más información sobre cómo crear un archivo de configuración personalizado, consulte Cambio de propiedades en el archivo de configuración de componente.
    Nota:
    • El archivo de configuración de componente predeterminado para el componente de fundamento es WCDE_installdir/workspace/WC/xml/config/com.ibm.commerce.foundation/wc-component.xml:
    • El archivo de configuración de componente personalizado para el componente de fundamento debe ser WCDE_installdir/workspace/WC/xml/config/com.ibm.commerce.foundation-ext/wc-component.xml

      Para cambiar el valor de una propiedad existente en un archivo de configuración de componente HCL Commerce, debe crear una versión personalizada del archivo en una nueva carpeta. La versión personalizada del archivo debe contener únicamente las propiedades modificadas. Si esta carpeta ya existe y contiene una versión personalizada del archivo wc-component.xml, abra el archivo y salte al paso 2.

  2. Configure las cabeceras de respuesta de CORS al añadir las propiedades correspondientes al archivo ampliado wc-component.xml.
    Las siguientes propiedades están disponibles para que las defina:
    (Obligatorio) CORSAccessControlAllowOrigin
    Lista de dominios de host permitidos. Utilice valores separados por comas (protocol://host_name:[port]), donde el número port es opcional. La propiedad CORSAccessControlAllowOrigin puede aceptar un único valor de comodín (*) para permitir el acceso a cualquier origen.
    Nota: No utilice comodines (*) en entornos de producción.
    CORSAccessControlAllowMethods
    Los métodos HTTP permitidos para acceso (valores separados por comas). Se devuelve en respuesta a una solicitud de previsualizar.
    CORSAccessControlAllowCredentials
    Indica si el navegador puede enviar credenciales al servidor (true | false). El valor predeterminado es falso.
    CORSAccessControlAllowHeaders
    Las cabeceras HTTP de cabeceras de solicitud permitidas (valores separados por comas). Se devuelve en respuesta a una solicitud de previsualizar.
    CORSAccessControlExposeHeaders
    Las cabeceras HTTP a las que un navegador puede acceder (valores separados por comas).
    CORSAccessControlMaxAge
    La hora (en segundos) en que se almacenarán en memoria caché los resultados de una solicitud de previsualizar en una memoria caché de resultados de previsualizar.
    La configuración se aplica en base a cada módulo web. El módulo web de destino se determina al añadir el nombre de visualización del archivo del módulo web web.xml al nombre configgrouping. Por ejemplo, al nombrar un configgroupping "HttpSecuritySettings_Rest" y otro configgrouping "HttpSecuritySettings_Store", se pueden configurar diferentes valores para el servlet REST y el servlet de tienda, respectivamente.
    Ejemplo:
    <_config:configgrouping name="HttpSecuritySettings_Rest">
    	<_config:property name="CORSAccessControlAllowOrigin" value="http://www.mydomain.com,https://www.mydomain.com,https://www.mydomain.com:9551"/>
    	<_config:property name="CORSAccessControlAllowMethods" value="GET, HEAD, POST, OPTIONS, PUT, DELETE"/>
    	<_config:property name="CORSAccessControlAllowCredentials" value="true"/>
    	<_config:property name="CORSAccessControlAllowHeaders" value="Origin,X-Requested-With,Content-Type,Accept,Authorization,cache-control,expires,pragma,wclogonid,wctoken,wctrustedtoken,wcuserid"/>
    	<_config:property name="CORSAccessControlMaxAge" value="3600"/>
    </_config:configgrouping>
  3. Guarde y cierre el archivo de configuración ampliado.
  4. Pruebe los cambios de configuración.

Qué hacer a continuación

Para obtener más información sobre compartir recursos entre orígenes (CORS), consulte Cross-Origin Resource Sharing o la guía de aprendizaje de HTML5 Using CORS.

Para obtener más información sobre la cabecera X-Frame-Options, consulte Mozilla Developer Network (MDN) documentation.