Esternalizzazione di URL

In AEM, il 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), anteponendo il percorso a un DNS preconfigurato.

Poiché un’istanza non è in grado di 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 al 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. Andate alla gestione della configurazione tramite Strumenti, quindi Console Web oppure immettete:

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

  2. Fare 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

    aem-externalizer-01

  3. Definire una mappatura Domains: 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:

    • Gli schemi sono in genere http o https, ma possono 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.
    • Il 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 - l'istanza locale
    • author - DNS del sistema di authoring
    • publish - DNS sito Web pubblico
    NOTA

    Una configurazione personalizzata consente di aggiungere una nuova categoria, ad esempio production, staging o anche sistemi esterni non AEM come my-internal-webservice. È utile evitare di codificare tali URL in diverse aree della base di codice di un progetto.

  4. Fare clic su Salva per salvare le modifiche.

Utilizzo del servizio Externalizer

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

  1. Per ottenere il servizio Externalizer in un JSP:

    Externalizer externalizer = resourceResolver.adaptTo(Externalizer.class);
    
  2. Per esternalizzare un percorso con il dominio 'pubblica':

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

    Presupponendo la mappatura del dominio:

    • publish https://www.website.com

    myExternalizedUrl termina con il valore:

    • https://www.website.com/contextpath/my/page.html
  3. Per esternalizzare un percorso con il dominio 'author':

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

    Presupponendo la mappatura del dominio:

    • author https://author.website.com

    myExternalizedUrl termina con il valore:

    • https://author.website.com/contextpath/my/page.html
  4. Per esternalizzare un percorso con il dominio 'locale':

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

    Presupponendo la mappatura del dominio:

    • local https://publish-3.internal

    myExternalizedUrl termina con il valore:

    • https://publish-3.internal/contextpath/my/page.html
  5. Per ulteriori esempi, vedere Javadocs.

In questa pagina

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