Configuring Cross-Origin Resource Sharing (CORS) headers

HCL Commerce prend en charge le partage de ressources d'origine croisée (CORS). Le filtre de servlet HttpSecurityFilter prend en charge la configuration des en-têtes liés à la CORS inclus dans la réponse HTTP. Vous pouvez configurer le filtre en étendant le fichier de configuration du composant (wc-component.xml).

Pourquoi et quand exécuter cette tâche

Le servlet HttpSecurityFilter prend en charge les en-têtes de réponse CORS définis dans la spécification CORS :
  • Access-Control-Allow-Origin
  • Access-Control-Allow-Informationss
  • Access-Control-Expose-Headers
  • Access-Control-Max-Age
  • Access-Control-Allow-Methods
  • Access-Control-Allow-Headers
Ce sujet décrit comment configurer ces en-têtes en créant et en modifiant un fichier de configuration personnalisé.
Remarque : HCL Commerce La prise en charge de CORS inclut la possibilité de placer plusieurs domaines sur la liste blanche. Toutes les modifications de configuration que vous effectuez au niveau des en-têtes liés à CORS s'appliqueront à tous les domaines sur liste blanche.

Procédure

  1. Créez un fichier de configuration de composants fondation personnalisé (wc-component.xml), si aucun n'existe :
    Pour plus d'informations sur la façon de créer un fichier de configuration personnalisé, voir Modification des propriétés dans le fichier de configuration des composants.
    Remarque :
    • Le fichier de configuration de composant par défaut pour le composant fondation est WCDE_installdir/workspace/WC/xml/config/com.ibm.commerce.foundation/wc-component.xml.
    • Le fichier de configuration de composant personnalisé pour le composant fondation doit être WCDE_installdir/workspace/WC/xml/config/com.ibm.commerce.foundation-ext/wc-component.xml.

      Pour modifier la valeur d'une propriété existante dans un fichier de configuration HCL Commerce de composant, vous devez créer une version personnalisée du fichier à cet emplacement. La version personnalisée du fichier ne doit contenir que les propriétés modifiées. Si ce dossier existe déjà et contient une version personnalisée du fichier wc-component.xml, ouvrez ce fichier et passez à l'étape 2.

  2. Configurez les en-têtes de réponse CORS en ajoutant les propriétés correspondantes à votre fichier étendu wc-component.xml.
    Vous pouvez définir les propriétés suivantes :
    (obligatoire) CORSAccessControlAllowOrigin
    Liste des domaines hôtes autorisés. Utilisez des valeurs séparées par des virgules (protocol://host_name:[port]), où le numéro port est facultatif. La propriété CORSAccessControlAllowOrigin peut accepter une seule valeur de caractère générique (*) pour permettre l'accès à n'importe quelle origine.
    Remarque : N'utilisez pas de caractères génériques (*) dans les environnements de production.
    CORSAccessControlAllowMethods
    Les méthodes HTTP autorisées pour l'accès (valeurs séparées par des virgules). Returned in the response to a preflight request.
    CORSAccessControlAllowCredentials
    Indique si le navigateur est autorisé à envoyer des informations d'identification au serveur (true | false). La valeur par défaut est false.
    CORSAccessControlAllowHeaders
    Les en-têtes HTTP des en-têtes de requête autorisés (valeurs séparées par des virgules). Returned in response to a preflight request.
    CORSAccessControlExposeHeaders
    Les en-têtes HTTP auxquels un navigateur peut accéder (valeurs séparées par des virgules).
    CORSAccessControlMaxAge
    La durée (en secondes) pendant laquelle les résultats de la requête de contrôle Preflight seront mis en cache dans un cache de résultats de contrôle Preflight.
    La configuration est appliquée sur une base par module Web. Le module Web cible est déterminé en ajoutant le nom d'affichage du fichier du module Web de web.xml au nom configgrouping. Par exemple, en nommant une valeur configgroupping "HttpSecuritySettings_Rest" et une autre valeur configgrouping "HttpSecuritySettings_Store", différentes valeurs peuvent être configurées pour le servlet REST et le servlet de magasin, respectivement.
    Exemple :
    <_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. Sauvegardez et fermez le fichier de configuration étendu.
  4. Testez vos changements de configuration.

Que faire ensuite

Pour plus d'informations sur le partage de ressources d'origine croisée (CORS), voir Cross-Origin Resource Sharing ou le tutoriel HTML5 Using CORS.

Pour plus d'informations sur l'en-tête X-Frame-Options, voir Mozilla Developer Network (MDN) documentation.