Esternalizzazione degli URL

In AEM, Externalizer è un servizio OSGI che consente di trasformare programmaticamente un percorso di risorse (ad es. /path/to/my/page) in un URL esterno e assoluto (ad esempio, https://www.mycompany.com/path/to/my/page) prefissando il percorso con un DNS preconfigurato.

Poiché un’istanza non può conoscere il relativo URL visibile esternamente se è in esecuzione dietro un livello Web e poiché a volte è necessario creare un collegamento all’esterno dell’ambito della richiesta, il servizio fornisce una posizione centrale per configurare tali URL esterni e crearli.

In questa pagina viene illustrato come configurare il servizio Externalizer e come utilizzarlo. Per ulteriori dettagli, fare riferimento a Javadocs.

Configurazione del servizio Externalizer

Il servizio Externalizer consente di definire a livello centrale più domini che possono essere utilizzati per il prefisso programmatico dei percorsi delle risorse. Ogni dominio è identificato da un nome univoco utilizzato per fare riferimento al dominio a livello di programmazione.

Per definire un mapping di dominio per il servizio Externalizer :

  1. Passa a Gestione configurazione tramite Strumenti, Console ​Web o immetti https://<host>:<port>/system/console/configMgr.

  2. Fate clic su Day CQ Link Externalizer per aprire la finestra di dialogo di configurazione.

    Nota

    Il collegamento diretto alla configurazione è https://<host>:<port>/system/console/configMgr/com.day.cq.commons.impl.ExternalizerImpl

    chlimage_1-44

  3. Definire un mapping di dominio: un mapping è costituito da un nome univoco che può essere utilizzato nel codice per fare riferimento al dominio, a uno spazio e al dominio:

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

    • di solito lo schema è http o https, ma può anche essere ftp ecc; utilizzate https per applicare eventuali collegamenti https; viene utilizzato se il codice client non esclude lo schema quando si richiede l'esternalizzazione di un URL.
    • server è il nome host (può essere un nome di dominio o un indirizzo IP).
    • port (facoltativo) è il numero della porta.
    • contextpath (facoltativo) è impostato solo se AEM è installato come app Web in un percorso contestuale diverso.

    Esempio: production https://my.production.instance

    I seguenti nomi di mappatura sono predefiniti e devono sempre essere impostati come AEM dipende da essi:

    • local - the local instance
    • authoring - DNS del sistema di authoring
    • pubblicazione - DNS del sito Web rivolto al pubblico
    Nota

    Una configurazione personalizzata consente di aggiungere una nuova categoria, ad esempio "produzione", "pre-produzione" o anche sistemi esterni non AEM come "il mio servizio Web interno" ed è utile per evitare che tali URL vengano codificati in diverse aree della base di codice di un progetto.

  4. Click Save to save your changes.

Utilizzo del servizio Externalizer

In questa sezione sono riportati alcuni esempi di utilizzo del servizio Externalizer .

Per ottenere il servizio Externalizer in un JSP:

Externalizer externalizer = resourceResolver.adaptTo(Externalizer.class);

Per esternalizzare un percorso con il dominio 'pubblica':

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

Presupponendo che la mappatura del dominio " publish https://www.website.com", myExternalizedUrl finisca con il valore " https://www.website.com/contextpath/my/page.html".

Per esternalizzare un percorso con il dominio 'author':

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

Presupponendo che la mappatura del dominio " author https://author.website.com", myExternalizedUrl finisca con il valore " https://author.website.com/contextpath/my/page.html".

Per esternalizzare un percorso con il dominio 'locale':

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

Presupponendo che la mappatura del dominio " local https://publish-3.internal", myExternalizedUrl finisca con il valore " https://publish-3.internal/contextpath/my/page.html".

Potete trovare altri esempi in Javadocs.

In questa pagina