DocumentaçãoAEM 6.4Guia de desenvolvimento

Exteriorização de URLs

Última atualização: 4 de maio de 2023
  • Tópicos:
  • Desenvolvimento

Criado para:

  • Desenvolvedor
CAUTION
AEM 6.4 chegou ao fim do suporte estendido e esta documentação não é mais atualizada. Para obter mais detalhes, consulte nossa períodos de assistência técnica. Encontre as versões compatíveis here.

Em AEM, a variável Externalizador é um serviço OSGI que permite transformar programaticamente um caminho de recurso (por exemplo, /path/to/my/page) em um URL externo e absoluto (por exemplo, https://www.mycompany.com/path/to/my/page) ao prefixar o caminho com um DNS pré-configurado.

Como uma instância não pode saber seu URL externamente visível se estiver em execução atrás de uma camada da Web e porque, às vezes, um link precisa ser criado fora do escopo da solicitação, esse serviço fornece um local central para configurar esses URLs externos e criá-los.

Esta página explica como configurar a variável Externalizador e como usá-lo. Para obter mais detalhes, consulte o Javadocs.

Configurar o serviço Externalizador

O Externalizador permite definir centralmente vários domínios que podem ser usados para prefixar programaticamente caminhos de recursos. Cada domínio é identificado por um nome exclusivo usado para fazer referência programaticamente ao domínio.

Para definir um mapeamento de domínio para a variável Externalizador serviço:

  1. Navegue até o gerenciador de configuração por meio de Ferramentas, em seguida Console da Web ou insira https://<host>:<port>/system/console/configMgr.

  2. Clique em Externalizador de links CQ do dia para abrir a caixa de diálogo de configuração.

    NOTE
    O link direto para a configuração é https://<host>:<port>/system/console/configMgr/com.day.cq.commons.impl.ExternalizerImpl

    chlimage_1-44

  3. Defina um mapeamento de domínio: um mapeamento consiste em um nome exclusivo que pode ser usado no código para fazer referência ao domínio, a um espaço e ao domínio:

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

    • esquema geralmente é http ou https, mas também pode ser ftp etc.; use https para aplicar links https, se desejado; ele será usado se o código do cliente não substituir o esquema ao solicitar a externalização de um URL.
    • server é o nome do host (pode ser um nome de domínio ou endereço ip).
    • porta (opcional) é o número da porta.
    • contextpath (opcional) só será definido se AEM for instalado como um aplicativo web em um caminho de contexto diferente.

    Por exemplo: production https://my.production.instance

    Os seguintes nomes de mapeamento são predefinidos e devem sempre ser definidos conforme AEM dependem deles:

    • local - a instância local
    • autor - DNS do sistema de criação
    • publicar - DNS, o sítio web público
    NOTE
    Uma configuração personalizada permite adicionar uma nova categoria, como "produção", "armazenamento temporário" ou até mesmo sistemas externos não AEM, como "meu serviço interno da Web", e é útil para evitar a codificação dessas URLs em diferentes locais na base de código de um projeto.
  4. Clique em Salvar para salvar as alterações.

NOTE
O Adobe recomenda que você adicionar a configuração ao repositório.

Uso do serviço Externalizador

Esta seção mostra alguns exemplos de como a variável Externalizador pode ser usado.

Para obter o serviço Externalizador em um JSP:

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

Para exteriorizar um caminho com o domínio "publicar":

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

Considerando o mapeamento de domínio " publish https://www.website.com", myExternalizedUrl acaba com o valor " https://www.website.com/contextpath/my/page.html".

Para exteriorizar um caminho com o domínio "autor":

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

Considerando o mapeamento de domínio " author https://author.website.com", myExternalizedUrl acaba com o valor " https://author.website.com/contextpath/my/page.html".

Para exteriorizar um caminho com o domínio "local":

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

Considerando o mapeamento de domínio " local https://publish-3.internal", myExternalizedUrl acaba com o valor " https://publish-3.internal/contextpath/my/page.html".

Você pode encontrar mais exemplos na Javadocs.

recommendation-more-help
2315f3f5-cb4a-4530-9999-30c8319c520e