Externalisation d’URL

En AEM, le Externalizer est un service OSGI qui vous permet de transformer par programmation un chemin de ressources (ex. /path/to/my/page) dans une URL externe et absolue (par exemple, https://www.mycompany.com/path/to/my/page) en préfixant le chemin d’accès avec un DNS préconfiguré.

Comme une instance ne peut pas connaître son URL visible en externe si elle s’exécute derrière une couche Web et qu’il est parfois nécessaire de créer un lien en dehors de l’étendue de la requête, ce service fournit un emplacement central pour configurer ces URL externes et les créer.

Cette page explique comment configurer le service Externalizer et l’utiliser. Pour plus d’informations, reportez-vous aux JavaDocs.

Configuration du service Externalizer

Le service Externalizer vous permet de définir de manière centralisée plusieurs domaines qui peuvent être utilisés pour préfixer par programmation les chemins de ressources. Chaque domaine est identifié par un nom unique utilisé pour faire référence au domaine par programmation.

Pour définir un mappage de domaine pour le service Externalizer, procédez comme suit :

  1. Accédez au gestionnaire de configuration par Outils, puis Console Web, ou saisissez :

    https://<host>:<port>/system/console/configMgr

  2. Cliquez sur Externalisateur de liens Day CQ pour ouvrir la boîte de dialogue de configuration.

    REMARQUE

    Le lien direct vers la configuration est https://<host>:<port>/system/console/configMgr/com.day.cq.commons.impl.ExternalizerImpl

    aem-externalizer-01

  3. Définissez un mappage Domains : un mappage consiste en un nom unique qui peut être utilisé dans le code pour référencer le domaine, un espace et le domaine :

    <unique-name> [scheme://]server[:port][/contextpath]

    Où :

    • ​les schémas sont généralement http ou https, mais peuvent également être ftp, etc.

      • utiliser https pour appliquer les liens https, si nécessaire
      • il sera utilisé si le code client ne remplace pas le schéma lors de la demande d’externalisation d’une URL.
    • Le serveur est le nom d’hôte (peut être un nom de domaine ou une adresse ip).

    • port (facultatif) est le numéro de port.

    • contextpath (facultatif) n’est défini que si AEM est installé en tant qu’application web sous un chemin de contexte différent.

    Par exemple : production https://my.production.instance

    Les noms de mappage suivants sont prédéfinis et doivent toujours être définis en fonction de leur utilisation AEM :

    • local - l'instance locale
    • author - le DNS du système de création
    • publish - DNS du site Web destiné au public
    REMARQUE

    Une configuration personnalisée vous permet d’ajouter une nouvelle catégorie, telle que production, staging ou même des systèmes externes non AEM tels que my-internal-webservice. Il est utile d’éviter de figer de telles URL à différents emplacements de la base de code d’un projet.

  4. Cliquez sur Enregistrer pour enregistrer vos modifications.

REMARQUE

Utilisation du service Externalizer

Cette section illustre quelques exemples d’utilisation du service Externalizer:

  1. Pour obtenir le service Externalizer dans un JSP :

    Externalizer externalizer = resourceResolver.adaptTo(Externalizer.class);
    
  2. Pour externaliser un chemin d’accès avec le domaine « publish » :

    String myExternalizedUrl = externalizer.publishLink(resolver, "/my/page") + ".html";
    

    En supposant le mappage de domaines :

    • publish https://www.website.com

    myExternalizedUrl se termine par la valeur :

    • https://www.website.com/contextpath/my/page.html
  3. Pour externaliser un chemin d’accès avec le domaine « author » :

    String myExternalizedUrl = externalizer.authorLink(resolver, "/my/page") + ".html";
    

    En supposant le mappage de domaines :

    • author https://author.website.com

    myExternalizedUrl se termine par la valeur :

    • https://author.website.com/contextpath/my/page.html
  4. Pour externaliser un chemin d’accès avec le domaine « local », procédez comme suit :

    String myExternalizedUrl = externalizer.externalLink(resolver, Externalizer.LOCAL, "/my/page") + ".html";
    

    En supposant le mappage de domaines :

    • local https://publish-3.internal

    myExternalizedUrl se termine par la valeur :

    • https://publish-3.internal/contextpath/my/page.html
  5. Vous trouverez d’autres exemples dans les Javadocs.

Sur cette page

Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now