Dans AEM, la variable Externalizer est un service OSGI qui vous permet de transformer par programmation un chemin d’accès aux ressources (par exemple, /path/to/my/page) dans une URL externe et absolue (par exemple, https://www.mycompany.com/path/to/my/page) en ajoutant un préfixe au 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 arrive qu’un lien doive être créé en dehors de la portée 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.
Le 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 d’accès aux 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 :
Accédez au gestionnaire de configuration via Outils, puis Console web ou saisissez :
https://<host>:<port>/system/console/configMgr
Cliquez sur Day CQ Link Externalizer pour ouvrir la boîte de dialogue de configuration.
Le lien direct vers la configuration est https://<host>:<port>/system/console/configMgr/com.day.cq.commons.impl.ExternalizerImpl

Définition d’une Domaines mapping : un mappage se compose d’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ù :
scheme est généralement http ou https, mais peut également être ftp, etc.
server est le nom d’hôte (il peut s’agir d’un nom de domaine ou d’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 autre chemin de contexte.
Par exemple : production https://my.production.instance
Les noms de mappage suivants sont prédéfinis et doivent toujours être configurés, car AEM en dépend :
local : instance localeauthor : DNS du système de créationpublish : DNS du site publicUne 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 coder en dur de telles URL à différents endroits dans le code base d’un projet.
Cliquez sur Enregistrer pour enregistrer vos modifications.
Adobe vous recommande de ajouter la configuration au référentiel ;.
Cette section illustre quelques exemples d’utilisation du service Externalizer:
Pour obtenir le service Externalizer dans un JSP :
Externalizer externalizer = resourceResolver.adaptTo(Externalizer.class);
Pour externaliser un chemin d’accès avec le domaine « publish » :
String myExternalizedUrl = externalizer.publishLink(resolver, "/my/page") + ".html";
En prenant le mappage de domaine :
publish https://www.website.commyExternalizedUrl se termine par la valeur :
https://www.website.com/contextpath/my/page.htmlPour externaliser un chemin d’accès avec le domaine « author » :
String myExternalizedUrl = externalizer.authorLink(resolver, "/my/page") + ".html";
En prenant le mappage de domaine :
author https://author.website.commyExternalizedUrl se termine par la valeur :
https://author.website.com/contextpath/my/page.htmlPour 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 prenant le mappage de domaine :
local https://publish-3.internalmyExternalizedUrl se termine par la valeur :
https://publish-3.internal/contextpath/my/page.htmlVous trouverez d’autres exemples dans les Javadocs.