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
- Access-Control-Allow-Origin
- Access-Control-Allow-Credentials
- Access-Control-Expose-Headers
- Access-Control-Max-Age
- Access-Control-Allow-Methods
- Access-Control-Allow-Headers
Procedimiento
-
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.
-
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 nombreconfiggrouping
. Por ejemplo, al nombrar unconfiggroupping
"HttpSecuritySettings_Rest
" y otroconfiggrouping
"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>
- Guarde y cierre el archivo de configuración ampliado.
- 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.