Show Menu
ARGOMENTI×

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 ) 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.
Questa pagina spiega 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 al gestore di 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.
    Il collegamento diretto alla configurazione è https://<host>:<port>/system/console/configMgr/com.day.cq.commons.impl.ExternalizerImpl
  3. Definire una mappatura Domini : 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 in base a quanto richiesto da AEM:
    • local - l'istanza locale
    • author - DNS del sistema di authoring
    • publish - DNS sito Web pubblico
    Una configurazione personalizzata consente di aggiungere una nuova categoria, ad esempio production sistemi esterni ad AEM staging o anche altri my-internal-webservice . È utile evitare di codificare tali URL in diverse aree della base di codice di un progetto.
  4. Click Save to save your changes.

Utilizzo del servizio Externalizer

Questa sezione mostra 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. Potete trovare altri esempi in Javadocs .