Show Menu
SUJETS×

Externalisation d’URL

In AEM, the Externalizer is an OSGI service that allows you to programmatically transform a resource path (e.g. /path/to/my/page ) into an external and absolute URL (for example, https://www.mycompany.com/path/to/my/page ) by prefixing the path with a pre-configured DNS.
Comme une instance ne peut pas connaître son URL visible en externe si elle est exécutée derrière un calque 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

The Externalizer service allows you to centrally define multiple domains that can be used to programmatically prefix resource paths. 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 via Outils , puis Console Web ou saisissez :
    https://<host>:<port>/system/console/configMgr
  2. Click Day CQ Link Externalizer to open the configuration dialog box.
    Le lien direct vers la configuration est https://<host>:<port>/system/console/configMgr/com.day.cq.commons.impl.ExternalizerImpl
  3. Define a Domains mapping: a mapping consists of a unique name that can be used in the code to reference the domain, a space and the domain:
    <unique-name> [scheme://]server[:port][/contextpath]
    Où :
    • schéma est généralement http ou https, mais peut aussi être ftp, etc.
      • utiliser https pour appliquer les liens https, le cas échéant
      • il sera utilisé si le code client ne remplace pas le schéma lors de la demande d’externalisation d’une URL.
    • server 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 d’AEM :
    • local - l'instance locale
    • author - le DNS du système de création
    • publish - le DNS du site Web public
    Une configuration personnalisée vous permet d’ajouter une nouvelle catégorie, telle que production les systèmes non AEM, staging ou même des systèmes externes, tels que my-internal-webservice . Il est utile d’éviter de figer ces URL à différents emplacements de la base de code d’un projet.
  4. Cliquez sur Enregistrer pour enregistrer vos modifications.
Adobe recommends that you add the configuration to the repository .

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 .