Show Menu
TÓPICOS×

Portais e portlets do AEM

Este documento descreve o seguinte:
  • Arquitetura do AEM Portal
  • Administração e configuração do AEM como um portal
  • Usar o AEM como portal
  • Instalação, configuração e exibição de conteúdo AEM em um portlet (por exemplo, um servidor da Web)

Arquitetura do AEM Portal

A arquitetura do portal do AEM inclui definições de portais e portlets.

O que é um portal?

Um portal é um aplicativo da Web que fornece personalização, logon único, integração de conteúdo de diferentes fontes e hospeda a camada de apresentação dos sistemas de informações.
Você pode executar portlets compatíveis com JSR 286 no AEM. O componente do portlet permite que você incorpore um portlet à página. Consulte Administração do portlet de conteúdo do AEM.

O que é um portlet?

Os portlets são componentes da Web implantados dentro de um container que geram conteúdo dinâmico. A interface do portlet é empacotada e implantada como um arquivo .war dentro de um container de portlet. Se você estiver executando o AEM como um portal, precisará do arquivo .war do portlet para executar o portlet.
Para configurar o conteúdo do AEM para aparecer em um portal, consulte Instalar, configurar e usar o AEM em um portlet .

AEM Portal Diretor

O AEM Portal Diretor está obsoleto a partir do AEM 6.4. Consulte Recursos obsoletos e removidos .

Administração do portlet de conteúdo do AEM

O portlet de conteúdo do AEM permite que você exiba conteúdo do AEM em um portal. O portlet está disponível em /crx-quickstart/opt/portal e pode ser personalizado de várias maneiras. Por exemplo, você pode personalizar a manipulação SSO/Autenticação ao implantar seu próprio serviço de autenticação gerando as informações de autenticação necessárias para o AEM para substituir o comportamento padrão. Os plug-ins usam uma API definida que permite que você adicione sua própria funcionalidade ao criar o plug-in em relação à API. O plug-in pode ser implantado no portlet em execução. Para funcionar corretamente, é necessário ter uma configuração do autor e da instância de publicação do AEM junto com o caminho do conteúdo para ser exibido na inicialização.
Algumas configurações podem ser alteradas através das preferências do portlet e outras através das configurações de serviço OSGi. Você altera essas configurações usando arquivos de configuração ou o console da Web OSGi.

Preferências do portlet

As preferências de portlet podem ser configuradas no momento da implantação no servidor de portal ou editando o arquivo WEB-INF/portlet.xml antes da implantação do aplicativo Web portlet. Por padrão, o arquivo portlet.xml é exibido da seguinte maneira:
<?xml version="1.0" encoding="UTF-8"?>
<portlet-app xmlns="https://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd"
             xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="https://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd /opt/SUNWps/dtd/portlet.xsd"
             version="1.0">
   <portlet>
      <portlet-name>RSSWeatherPortlet</portlet-name>
      <portlet-class>org.jboss.portlet.weather.WeatherPortlet</portlet-class>
      <init-param>
         <name>default_zipcode</name>
         <value>05673</value>
      </init-param>
      <init-param>
         <name>RSS_XSL</name>
         <value>/WEB-INF/Rss.xsl</value>
      </init-param>
      <init-param>
         <name>base_url</name>
         <value>https://xml.weather.yahoo.com/forecastrss?p=</value>
      </init-param>
      <expiration-cache>180</expiration-cache>
      <supports>
         <mime-type>text/html</mime-type>
         <portlet-mode>VIEW</portlet-mode>
         <portlet-mode>EDIT</portlet-mode>
      </supports>
      <portlet-info>
         <title>Weather Portlet</title>
      </portlet-info>
      <portlet-preferences>
         <preference>
            <name>expires</name>
            <value>180</value>
         </preference>
         <preference>
            <name>RssXml</name>
            <value>https://xml.weather.yahoo.com/forecastrss?p=33145</value>
            <read-only>false</read-only>
         </preference>
      </portlet-preferences>
   </portlet>
</portlet-app>

O portlet pode ser configurado com as seguintes preferências:
startPath
Este é o caminho de start do portlet: define o conteúdo que é exibido inicialmente.
Importante : Se o portlet estiver configurado para se conectar ao autor do AEM e publicar instâncias que estejam sendo executadas em um caminho de contexto diferente de / , será necessário ativar a opção forçar o CQUrlInfo na configuração do Html Library Manager dessas instâncias do AEM (por exemplo, via console do Web do Felix) ou a edição não funcionará e a caixa de diálogo de preferências não aparecerá.
htmlSeletor O seletor que é anexado a cada url. Por padrão, este é um portlet , portanto, todas as solicitações para páginas html usam urls que terminam em .portlet.html. Isso permite o uso de scripts personalizados no AEM para renderização de portlet.
addCssToPortalHeader
Por padrão, os arquivos css incluídos na página HTML do AEM são incluídos no portlet. A desativação dessa opção exclui os arquivos css padrão.
Se essa opção estiver ativada, os arquivos CSS serão adicionados ao cabeçalho da página html ou incorporados à página html, dependendo do comportamento do portal.
includeToolbar Por padrão, uma barra de ferramentas é renderizada dentro do portlet de conteúdo para a funcionalidade de gerenciamento. Ao desativar essa opção, nenhuma barra de ferramentas é renderizada.
urlParameterNames
Lista de nomes de parâmetros de URL alternativos que podem conter o novo URL de conteúdo a ser exibido para o portlet. A lista é processada de cima para baixo, o primeiro parâmetro que contém um valor é usado. Se nenhum URL for encontrado, o parâmetro de URL padrão será usado. O URL fornecido é usado, como está, sem qualquer modificação adicional.
Essa configuração é por portlet implantado - também é para configurar globalmente alguns parâmetros de url na configuração OSGi para a "Ponte do portlet do Day Portal Diretor".
priorityDialog Caminho para a caixa de diálogo de preferências no AEM - se deixado em branco, a caixa de diálogo de preferências incorporadas será usada. O padrão é /libs/portal/content/prefs.html.
initialRedirect Por padrão, o portlet executa um redirecionamento javascript de toda a página do portal na primeira invocação. Isso é para suportar o cenário de arrastar e soltar dos servidores de portal modernos. Na produção, esse redirecionamento raramente é necessário e pode, portanto, ser desativado com essa preferência sendo definida como false .

Console Web OSGi

Supondo que o servidor de portal seja executado em host local, porta 8080 e que o aplicativo Web de portlet AEM seja montado no cportlet de contexto de aplicativo da Web, o url para para o console da Web será https://localhost:8080/cqportlet/cqbridge/system/console . O usuário e a senha padrão são admin .
Abra a guia Configurações e selecione Configuração do servidor CQ do diretório do portal. Aqui, você especifica o URL básico para o autor e a instância de publicação. Este procedimento é descrito em Configuração do portlet .
O console da Web do OSGi é destinado apenas a alterar configurações durante o desenvolvimento (ou testes). Certifique-se de bloquear solicitações no console para sistemas de produção.

Fornecimento de configurações

Para suportar implantações automatizadas e provisionamento de configuração, o portlet de conteúdo AEM tem suporte de configuração incorporado que tenta ler configurações do classpath fornecido para o aplicativo portlet.
Na inicialização, a propriedade do sistema com.day.cq.portet.config é lida para detectar o ambiente atual. Normalmente, o valor dessa propriedade é algo como dev , prod , test e assim por diante. Se nenhum ambiente estiver definido, nenhuma configuração será lida.
Se um ambiente for definido, um arquivo de configuração será pesquisado no classpath em * * com/day/cq/portlet/.config , onde env é substituído pelo valor real do ambiente. Este arquivo deve lista todos os arquivos de configuração para este ambiente. Esses arquivos são pesquisados em relação ao local do arquivo de configuração. Por exemplo, se o arquivo contém uma linha, my.service.xml, esse arquivo é lido do classpath em com/day/cq/portlet/my.service.config. O nome do arquivo consiste na ID de persistência do serviço, seguido por .config . No exemplo anterior, a ID de persistência é my.service . O formato do arquivo de configuração é o formato usado pelo instalador do Apache Sling OSGi.
Isso significa que, para cada ambiente, é necessário adicionar um arquivo de configuração correspondente. Uma configuração que deve ser aplicada a todos os ambientes precisa ser inserida em todos esses arquivos - se for apenas para um único ambiente, ela será inserida nesse arquivo. Esse mecanismo garante controle total sobre qual configuração é lida em qual ambiente.
É possível usar uma propriedade do sistema diferente para detectar o ambiente. Especifique a propriedade do sistema com.day.cq.portet.configproperty que contém o nome da propriedade do sistema a ser usada em vez de com.day.cq.portet.config .

Invalidação de armazenamento em cache e armazenamento em cache

O portlet, em sua configuração padrão, armazena em cache as respostas recebidas do WCM AEM em um cache específico do usuário. Os caches precisam ser invalidados quando houver alterações no conteúdo da instância de publicação. Para essa finalidade, no AEM WCM, um agente de replicação deve ser configurado na instância do autor. O cache também pode ser descarregado manualmente. Esta seção descreve ambos os procedimentos.
O portlet pode ser configurado com seu próprio cache, de modo que o conteúdo no portlet seja exibido sem a necessidade de acesso ao AEM. O portal está disponível como conteúdo em /libs/portal/diretor. Para acessar o conteúdo, start uma instância do AEM e baixe, usando o CRXDE Lite ou o Webdav, o arquivo desse local.
Você pode implantar esse pacote em tempo de execução ou adicioná-lo ao aplicativo da Web portlet em WEB-INF/lib/resources/bundles antes da implantação.
Após a implantação do cache, o portlet armazena em cache o conteúdo da instância de publicação. O cache do portlet pode ser invalidado com um despachante do AEM. Para configurar o portlet para usar seu próprio cache:
  1. Configure um agente de replicação no autor que público alvo o servidor de portal.
  2. Supondo que o servidor de portal seja executado em host localhost , porta 8080 e que o aplicativo da Web de portlet AEM seja montado no cqportlet de contexto, o url para liberar o cache será https://localhost:8080/cqportlet/cqbridge/cqpcache?Path=$(path) . Use GET como o método. Observação: Em vez de usar um parâmetro de solicitação, você pode enviar um cabeçalho http chamado Caminho .

Liberando o cache pelo agente de replicação

Assim como a invalidação normal do dispatcher, um agente de replicação pode ser configurado para público alvo do cache do portlet AEM do portal. Depois de configurar o agente de replicação, cada ativação de página regular limpa o cache do portal.
Se você operar vários nós de portal executando o portlet AEM, será necessário criar um agente para cada nó, conforme descrito neste procedimento.
Para configurar um agente de replicação para o portal:
  1. Faça logon na instância do autor.
  2. Na guia Sites, clique na guia Ferramentas .
  3. Clique em Nova página... nos agentes de replicação Novo... menu.
  4. Em Modelo , selecione Agente de Replicação e insira um nome para o agente. Clique em Criar .
  5. Clique com o Duplo no agente de replicação que você acabou de criar. Ele é exibido como inválido, pois ainda não foi configurado.
  6. Clique em Editar.
  7. Na guia Configurações , marque a caixa de seleção Ativado , selecione Dispatcher Flush como o tipo de serialização e digite um tempo limite de nova tentativa (por exemplo, 60000).
  8. Click the Transport tab.
  9. No campo URI , digite o URL (URL) de liberação do portlet. O URI está na seguinte forma:
    https://<wps-host>:<port>/<wps-context>/<cq5-portlet-context>/cqbridge/cqpcache
    
    
  10. Click the Extended tab.
  11. No campo Método ​HTTP, digite GET .
  12. No campo Cabeçalhos ​HTTP, clique em + para adicionar uma nova entrada e digite Caminho: .
  13. Se necessário, clique na guia Proxy e insira informações de proxy para o agente.
  14. Click OK to save changes.
  15. Para testar a conexão, clique no link Testar conexão . Uma mensagem de registro é exibida indicando se o teste de replicação foi bem-sucedido. Por exemplo:

Limpando manualmente o cache do portlet

É possível liberar manualmente o cache do portlet acessando o mesmo URL configurado para o agente de replicação. Consulte Limpando o cache para obter o formulário do URL. Além disso, o URL precisa ser estendido com um parâmetro de URL Path=<path> para indicar o que será descarregado.
Por exemplo:
https://10.0.20.99:10040/wps/PA_CQ5_Portlet/cqbridge/cqpcache?Path=* libera o cache completo. https://10.0.20.99:10040/wps/PA_CQ5_Portlet/cqbridge/cqpcache?Path=/content/mypage/xyz libera /content/mypage/xyz do cache.

Segurança do portal

O portal é o mecanismo de autenticação de direção. Você pode fazer logon no AEM com um usuário técnico, o usuário do portal, um grupo e assim por diante. O portlet não tem acesso à senha para o usuário no portal, portanto, se o portlet não souber todas as credenciais para fazer logon com êxito em um usuário, uma solução SSO deverá ser usada. Nesse caso, o portlet AEM encaminha todas as informações necessárias para o AEM, que, por sua vez, encaminha essas informações para o repositório subjacente do AEM. Esse comportamento é plugável e pode ser personalizado.

Autenticação ao publicar

Esta seção descreve os modos de autenticação disponíveis que o portlet pode usar na comunicação com as instâncias subjacentes do WCM AEM.
Por padrão, nenhuma informação do usuário é enviada para a instância de publicação do AEM; o conteúdo é sempre exibido como o usuário anônimo. Se informações específicas do usuário devem ser entregues pelo AEM ou se a autenticação do usuário para publicação for obrigatória, isso deve ser ativado.

Acessar a configuração de autenticação do portlet

As opções de configuração de autenticação que o portlet usa nas instâncias WCM AEM estão disponíveis no console da Web (configuração OSGi).
Ao trabalhar com o AEM, há vários métodos de gerenciar as configurações dos serviços OSGi (nós do console ou do repositório).
Consulte Configuração do OSGi para obter detalhes completos.
Para acessar a configuração de autenticação do portlet:
  1. Acesse o console da Web no seguinte URL:
    https://localhost:8080/cqportlet/cqbridge/system/console
    Por exemplo, em sua configuração padrão:
    https://wps-host:10040/wps/PA_CQ5_Portlet/cqbridge/system/console
  2. Faça logon no console da Web. As credenciais padrão são admin/admin .
  3. No console, selecione Configuração .
  4. No menu Configuração , selecione um serviço específico para configurar. Os serviços são fornecidos pelo portlet na estrutura OSGi.
    Nome do serviço
    Descrição
    Autenticador do Day Portal Diretor
    Configure qual modo de autenticação é usado para instâncias WCM AEM. Dependendo do modo selecionado, é possível especificar um usuário técnico ou o nome do cookie SSO. Além disso, a autenticação para instâncias de publicação do WCM AEM pode ser ativada.
    Cache de Arquivo do Diretor do Portal de Dias
    Configure os parâmetros de como o portlet armazena em cache as respostas recebidas das instâncias do AEM WCM.
    Serviço de Cliente HTTP do Day Portal Diretor
    Configure como o portlet se conecta via HTTP às instâncias subjacentes do AEM WCM. Por exemplo, você pode especificar um servidor proxy.
    Manipulador de Localidade do Diretor do Portal de Dia
    Configure quais localidades o portlet suporta. As solicitações para instâncias do WCM AEM são baseadas na localidade do usuário; por exemplo, idioma do usuário *alemão *solicitaria /content/geometrixx/de/ ....
    Gerente de Privilégio do Diretor do Portal de Dia
    Configure se o portlet deve testar a guia Sites com base no usuário conectado no momento.
    Renderizador da barra de ferramentas do Day Portal
    Personalize a renderização da barra de ferramentas do portlet.
  5. Além disso, você pode configurar o console da Web e o serviço de registro. Por exemplo, você pode alterar as credenciais de administrador para o console da Web clicando no link Console de gerenciamento do Apache Felix OSGi.

Modo de usuário técnico

No modo padrão, todas as solicitações emitidas pelo portlet para a instância do autor do WCM AEM são autenticadas usando o mesmo usuário técnico, independentemente do usuário do portal atual. O modo de Usuário Técnico está ativado por padrão. Você ativa/desativa esse modo na respectiva tela de configuração no console de gerenciamento OSGi:
O usuário técnico especificado deve existir na instância do autor do WCM AEM e na instância de publicação se a opção Autenticar ao publicar estiver ativada. Certifique-se de conceder ao usuário privilégios de acesso suficientes para o trabalho de criação.

SSO

O portlet suporta SSO com AEM pronto para uso. O serviço de autenticação pode ser configurado para usar o SSO e transmitir o usuário atual do portal com o formato Basic como um cookie chamado cqpsso de AEM. O AEM deve ser configurado para usar o manipulador de autenticação SSO para path /. O nome do cookie também precisa ser configurado aqui.
O repositório crx-quickstart/repository/repository.xml do AEM precisa ser configurado de acordo:
<LoginModule class="com.day.crx.security.authentication.CRXLoginModule">
  ...
  <param name="trust_credentials_attribute" value="TrustedInfo"/>
  <param name="anonymous_principal" value="anonymous"/>
</LoginModule>

Modo de autenticação SSO

O portlet pode ser autenticado para o AEM WCM usando o esquema Single Sign On (SSO). Nesse modo, o usuário conectado no momento ao portal é encaminhado para o AEM WCM na forma de um cookie SSO. Se o modo SSO for usado, todos os usuários do portal com acesso ao portlet AEM devem ser conhecidos pelas instâncias subjacentes do WCM AEM, mais comumente na forma de WCM AEM conectado ao LDAP, ou por terem criado os usuários manualmente antes. Além disso, antes de habilitar o SSO no portlet, a instância subjacente do autor WCM do AEM (e a instância de publicação, se Autenticar ao publicar estiver habilitada) precisa ser configurada para aceitar solicitações baseadas em SSO.
Para configurar o portlet para usar o modo de autenticação SSO, conclua as seguintes etapas (descritas em detalhes nas seções a seguir):
  • Ative o repositório do WCM AEM para aceitar credenciais confiáveis.
  • Ative a autenticação SSO no WCM AEM.
  • Ative a autenticação SSO no portlet AEM.

Permitir que o repositório do WCM AEM aceite credenciais confiáveis

Antes que o SSO possa ser ativado para o AEM WCM, o repositório subjacente precisa ser configurado para aceitar as credenciais confiáveis fornecidas pelo AEM WCM. Para fazer isso, configure o repositório.xml do AEM.
  1. No sistema de arquivos onde o AEM WCM está instalado, abra o seguinte arquivo:
    //crx-quickstart/repository/repository.xml
  2. No arquivo XML, localize a entrada para o LoginModule e adicione o trust_entials_attribute à sua configuração:
    <LoginModule class="com.day.crx.security.authentication.CRXLoginModule">
      ...
      <param name="trust_credentials_attribute" value="TrustedInfo"/>
      <param name="anonymous_principal" value="anonymous"/>
    </LoginModule>
    
    
  3. Reinicie o AEM WCM para que as alterações entrem em vigor.

Ativar a autenticação SSO no AEM WCM

Para ativar o SSO no WCM AEM, acesse a entrada de configuração relevante no console de gerenciamento da Web Apache Felix (OSGi) do AEM WCM:
  1. Acesse o console por meio de seu URI em https://<AEM-host>:<porta>/system/console.
  2. No menu Configuração, selecione Manipulador de Autenticação SSO. Neste exemplo, o manipulador SSO aceita solicitações SSO para todos os caminhos com base no cookie fornecido pelo portlet AEM. Sua configuração pode variar.
    Caminho
    /
    Habilita o manipulador SSO para todas as solicitações
    Nomes de cookie
    cqpsso
    Nome do cookie fornecido pelo portlet, conforme configurado no console OSGi do portlet.
  3. Clique em Salvar para ativar o SSO. O SSO agora é o esquema de autenticação principal.
Para cada solicitação que o AEM WCM receber, primeiro a autenticação baseada em SSO é tentada. Em caso de falha, é executado um fallback para o esquema de autenticação básico comum. Como tal, as conexões normais com o AEM WCM sem SSO permanecem possíveis.

Ativação da autenticação SSO em um portlet AEM

Para que a instância WCM subjacente do AEM aceite solicitações SSO, o modo de autenticação do portlet deve ser alternado de Técnico para SSO .
Para ativar a autenticação SSO em um portlet AEM:
  1. Acesse o console por meio de seu URI em https://<aem-host>:<porta>/system/console.
  2. No menu Configuração, selecione Autenticador do Day Portal Diretor na lista de configurações disponíveis.
  3. No modo, selecione SSO. Deixe os outros parâmetros com seus valores padrão.
  4. Clique em Salvar para ativar o SSO para o portlet.
    Para fins de teste, acesse o portlet com o usuário administrativo do portal, depois de criar o mesmo usuário no WCM AEM com privilégios de administrador.
Após executar esse procedimento, as solicitações são autenticadas usando o SSO. Um trecho típico da comunicação HTTP revela a presença dos seguintes cabeçalhos SSO e Portlet específicos:
C-12-#001898 -> [GET /mynet/en/_jcr_content/par/textimage/image.img.png HTTP/1.1 ]
C-12-#001963 -> [cq5:locale: en ]
C-12-#001979 -> [cq5:used-locale: en ]
C-12-#002000 -> [cq5:locales: en,en_US ]
C-12-#002023 -> [cqp:user: wpadmin ]
C-12-#002042 -> [cqp:portal: IBM WebSphere Portal/6.1 ]
C-12-#002080 -> [cqp:windowid: 7_CGAH47L000CE302V2KFNOG0084 ]
C-12-#002124 -> [cqp:windowstate: normal ]
C-12-#002149 -> [cqp:portletmode: view ]
C-12-#002172 -> [User-Agent: Jakarta Commons-HttpClient/3.1 ]
C-12-#002216 -> [Host: 10.0.0.68:4502 ]
C-12-#002238 -> [Cookie: $Version=0; cqpsso=Basic+d3BhZG1pbg%3D%3D ]
C-12-#002289 -> [ ]

Habilitando autenticação PIN

Se você não estiver usando os recursos padrão de edição em linha do portlet de conteúdo AEM, mas quiser que a parte de criação e administração do portlet seja feita fora do portal diretamente na instância do autor AEM, ative a autenticação PIN. Também é necessário alterar a configuração dos botões de gerenciamento.
Para abrir a página de administração do site ou editar uma página do portlet, o portlet de conteúdo AEM usa a nova autenticação de pinos. Por padrão, a autenticação de pinos está desativada, portanto, as seguintes alterações de configuração devem ser feitas no AEM:
  1. Ative a autenticação confiável no AEM adicionando as informações confiáveis no arquivo repository.xml:
    <LoginModule class="com.day.crx.security.authentication.CRXLoginModule">
      ...
      <param name="trust_credentials_attribute" value="TrustedInfo"/>
    </LoginModule>
    
    
  2. No console de configuração do OSGi, por padrão localizado em https://localhost:4502/system/console/configMgr, selecione CQ PIN Authentication Handler no menu suspenso.
  3. Edite o parâmetro Caminho raiz do URL para conter apenas o valor / .

Privilégios

Algumas funções do portlet são protegidas por privilégios. O usuário atual precisa ter esse privilégio para poder acessar essa função. Há os seguintes privilégios predefinidos:
  • "barra de ferramentas" : Esse é o privilégio geral de ver/usar a barra de ferramentas no portlet.
  • "prefs" : Se o usuário tiver esse privilégio, ele poderá ver/alterar as preferências do portlet.
  • "cq-author:edit" : Com esse privilégio, o usuário tem permissão para invocar a visualização de edição do conteúdo.
  • "cq-author:pré-visualização" : Com esse privilégio, o usuário tem permissão para ver a pré-visualização.
  • "cq-author:siteadmin" : Com esse privilégio, o usuário tem permissão para abrir o siteadmin no AEM.
A melhor abordagem para gerenciar os privilégios é usar funções de portal e atribuir funções a esses privilégios. Isso pode ser feito por meio de uma configuração OSGi. O "Gerenciador de privilégios do Diretor do Portal de Dia" pode ser configurado com um conjunto de funções para cada privilégio. Se o usuário tiver uma das funções, ele terá o privilégio correspondente.
Além disso, é possível definir essa função com base no acesso em uma base de instância por portlet. A caixa de diálogo de preferências do portlet contém um campo de entrada para cada um dos privilégios acima. Para cada privilégio, é possível configurar uma lista separada por vírgulas de funções de portlet. Se um valor for configurado, isso substituirá a configuração global do serviço "Gerenciador de privilégios do Diretor do Portal de Dia" e talvez seja necessário adicionar as mesmas funções dessa configuração global, já que as funções não são mescladas! Se nenhum valor for especificado, a configuração global será usada.

Personalização do aplicativo de portlet AEM

O aplicativo de portlet AEM fornecido start um container OSGi dentro do aplicativo da Web, assim como o AEM faz. Esta arquitetura permite que você utilize todos os benefícios do OSGi:
  • Fácil de atualizar e estender
  • Fornece atualizações instantâneas do portlet sem nenhuma interação do servidor do portal
  • Fácil de personalizar o portlet

Botões da barra de ferramentas

A barra de ferramentas e seus botões são configuráveis e podem ser personalizados. Você pode adicionar seus próprios botões à barra de ferramentas ou definir quais botões serão exibidos em qual modo. Cada botão é um serviço OSGi configurável por meio de uma configuração OSGi.
O console da Web OSGi lista todas as configurações de botão na guia Configuração . Para cada botão, você pode definir em qual modo esse botão será exibido. Isso permite desativar um botão removendo todos os modos, por exemplo.
Por padrão, o portlet de conteúdo do AEM usa a funcionalidade de edição em linha. Entretanto, se você preferir alternar para a instância do autor de AEM para edição, ative o botão ​SiteAdmin e o botão ​ContentFinder, mas desative o botão ​Editar. Nesse caso, certifique-se de configurar corretamente a autenticação PIN no AEM.
O layout da barra de ferramentas do portlet pode ser personalizado instalando-se um pacote por meio do console Web Felix do portlet, que contém CSS/HTML personalizado em um local predefinido.

Estrutura do pacote

A seguir está uma estrutura de conjunto de exemplos:
$ jar tvf target/toolbarlayout-0.0.1-SNAPSHOT.jar | awk '{print $8}'
META-INF/
META-INF/MANIFEST.MF
/com/day/cq/portlet/toolbar/layout/
/com/day/cq/portlet/toolbar/layout/author.gif
/com/day/cq/portlet/toolbar/layout/back.gif
/com/day/cq/portlet/toolbar/layout/button.html
/com/day/cq/portlet/toolbar/layout/edit.gif
/com/day/cq/portlet/toolbar/layout/manage.html
/com/day/cq/portlet/toolbar/layout/publish.html
/com/day/cq/portlet/toolbar/layout/refresh.gif
/com/day/cq/portlet/toolbar/layout/siteadmin.gif
/com/day/cq/portlet/toolbar/layout/toolbar.css

A pasta META-INF contém o arquivo MANIFEST.MF necessário pelo OSGi para identificá-lo como um pacote. O texto é exibido como segue:
Manifest-Version: 1.0
Built-By: djaeggi
Created-By: Apache Maven Bundle Plugin
Import-Package: com.day.cq.portlet.toolbar.layout
Bnd-LastModified: 1234178347159
Export-Package: com.day.cq.portlet.toolbar.layout
Bundle-Version: 0.0.1.SNAPSHOT
Bundle-Name: Company CQ5 Portal Director Portlet Toolbar Layout
Bundle-Description: This bundle provides a custom layout for the CQ5 P
 ortal Director Portlet Toolbar.
Build-Jdk: 1.5.0_16
Bundle-ManifestVersion: 2
Bundle-SymbolicName: com.day.cq.portlet.company.toolbarlayout
Tool: Bnd-0.0.255

O fato de que o HTML/CSS/images está na pasta /com/day/cq/portlet/toolbar/layout é obrigatório pelo portlet e não pode ser alterado. Nas mesmas linhas, os cabeçalhos Import-Package e Export-Package em MANIFEST.MF também devem ser chamados de /com/day/cq/portlet/toolbar/layout. O Bundle-SymbaticName deve ser um nome de pacote exclusivo e totalmente qualificado.
Você pode criá-lo usando uma ferramenta como maven ou criar manualmente um arquivo jar com o cabeçalho relevante definido como mostrado nesta seção.

Visualizações da barra de ferramentas do portlet

A barra de ferramentas do portlet tem basicamente dois estados de visualização. Cada visualização e botões associados podem ser personalizados com um arquivo HTML respectivo.

Visualização de publicação

A visualização de publicação tem apenas um botão que alterna a barra de ferramentas para Gerenciar visualização. A visualização publish é representada pelo arquivo publish.html no pacote anterior . No HTML, você pode usar os seguintes espaços reservados, que são substituídos pelo portlet pelo respectivo conteúdo quando renderizados:

Marcadores de posição da Visualização de publicação

String de espaço reservado
Descrição
O espaço reservado é substituído pelo botão Gerenciar , que alterna o estado do portlet para o estado de gerenciamento.

Gerenciar Visualização

A visualização manage tem quatro botões: Editar, guia Sites, Atualizar e Voltar. A visualização manage é representada pelo arquivo manage.html no pacote anterior . No HTML, você pode usar os seguintes espaços reservados, que são substituídos pelo portlet pelo respectivo conteúdo quando renderizados:

Gerenciar marcadores de posição de Visualização

String de espaço reservado
Descrição
O espaço reservado é substituído pelo botão Editar , que abre uma nova janela com a página atual no modo de edição do AEM.
Marcador de posição, substituído por um botão que abre a guia Sites do WCM AEM.
Atualiza a visualização atual.
Alterna o portlet de volta para a visualização de publicação.

Botões

Os botões, em qualquer visualização que eles aparecerem, usam o mesmo HTML comum, definido em button.html.
No HTML, você pode usar os seguintes espaços reservados, que são substituídos pelo portlet pelo respectivo conteúdo quando renderizados:

Botões Gerenciar e publicar Visualização

String de espaço reservado
Descrição
Nome do botão, por exemplo, autor​ , voltar, atualizar e assim por diante.
ID CSS do botão.
URL do público alvo do botão.
Rótulo do botão.
Função onclick do Javascript (contém ).
Exemplo de um arquivo button.html:
<div class="cqp_button">

 <a href="#" onclick="{onclick}">

 <img src="/wps/PA_CQ5_Portlet/cqbridge/static/{id}.gif" alt="{text}"
title="{text}"/>

 </a>
</div>

Instalação de um layout personalizado

Para instalar um layout personalizado, acesse a seção Bundles Bundles ** do console OSGI Web do portlet e faça upload do pacote.

Pacotes

Se precisar carregar ou criar pacotes para sua instalação, consulte Gerenciador de pacotes na documentação do AEM para obter instruções detalhadas.

Localização

O portlet de conteúdo do AEM tem um recurso de localização incorporado, que garante que o conteúdo do AEM esteja no idioma correto.
Isso é feito em duas etapas:
  1. O Detector de Localidade do Diretório de Portal detecta a localidade do usuário do portal obtendo a configuração de localidade do portal. Esse serviço deve ser configurado com a lista de idiomas disponíveis no AEM.
  2. O Manipulador de Localidade do Diretor do Portal lida com a localização da solicitação atual. Ele segue o caminho do conteúdo solicitado, por exemplo, /content/geometrixx/en/company.html e, de acordo com a configuração, reescreve a en com a localidade real do usuário.
O Manipulador de Localidade do Diretor do Portal pode ser configurado com os caminhos para verificar as informações de localidade - normalmente isso inclui tudo sob /content e com a posição das informações de localidade no caminho. Por padrão, o manipulador de localidades segue a recomendação de estruturar sites de vários idiomas no AEM.
Se o site não tiver uma regra estrita para lidar com as informações de localidade dentro do caminho, será possível substituir o manipulador de localidades pela sua própria implementação.

Serviços OSGi opcionais

Os serviços OSGi opcionais podem ser implementados para personalizar várias partes do portlet. Cada serviço corresponde a uma interface Java. Essa interface pode ser implementada e implantada por meio de um pacote no portlet.
RequestTracker O rastreador de solicitações é notificado sempre que o conteúdo é exibido pelo portlet. Isso permite rastrear as invocações do portlet.
InvocationContextListener Ouvinte que é chamado no início e no fim de cada solicitação para o portlet. O ouvinte pode ser usado para alterar ou adicionar informações para a solicitação atual.
ErrorHandler Manipulador de erros personalizado para erros durante a fase de renderização.
HttpProcessor Esse serviço pode ser usado para adicionar informações a cada invocação http ao AEM.
PortletAction Adicionar uma ação própria ao portlet - essa ação pode ser invocada por meio de um link de ação do portlet.
PortletDecoratorService Este serviço pode ser usado para decorar o conteúdo do portlet.
ResourceProvider Adicione seu próprio provedor de recursos para fornecer algum recurso por meio de um link de recurso de portlet para o cliente.
TextMapper Permite que você publique arquivos HTML, CSS e Javascript de processo.
ToolbarButton Adicione seu próprio botão à barra de ferramentas.
UrlMapper Adicione um serviço para aplicar um mapeamento ou regravação de url personalizado.
UserInfoProvider Adicione suas próprias informações sobre o usuário. Esse serviço pode ser usado para obter informações do portal para o portlet.

Substituição de serviços padrão

Os seguintes serviços têm uma implementação padrão no portlet de conteúdo (com uma interface Java correspondente). Para personalizar, é necessário implantar um pacote contendo a nova implementação do serviço no aplicativo portlet.
Ao implementar tal serviço, certifique-se de definir a propriedade service.ranking do serviço com um valor positivo. A implementação padrão usa a classificação 0 e o portlet usa o serviço com a classificação mais alta.
Nome
Descrição
Comportamento padrão
Autenticador
Fornece as informações de autenticação ao AEM
Usa um usuário técnico configurável para autor e publicação. Ou SSO pode ser usado.
HTMLRewriter
Substitui links, imagens etc.
Substitui links do AEM por links de portal, que podem ser estendidos por um UrlMapper e um TextMapper
HttpClientService
Trata de todas as conexões http
Implementação padrão
LocaleHandler
Processa as informações da localidade
Substitui um link do conteúdo em relação à localidade.
LocaleDetector
Detecta a localidade do usuário.
Usa a localidade fornecida pelo portal.
PrivilegeManager
Verifica os direitos do usuário
Verifica o acesso à instância do autor se o usuário tem permissão para editar conteúdo
ToolbarRenderer
Renderiza a barra de ferramentas
Adiciona uma funcionalidade da barra de ferramentas

Eventos de portlet

A API de portlet (JSR-286) especifica eventos de portlet. O portlet de conteúdo AEM tem uma ponte integrada, distribuindo eventos de portlet para o portlet AEM como eventos OSGi - isso torna possível o manuseio de eventos de portlet.
Se você quiser lidar com eventos específicos, declare-os como eventos de recebimento no descritor de deployment (ou configure-os pelo servidor de portal) e implemente um serviço OSGi declarando a interface EventHandler (consulte a especificação OSGi EventAdmin).
Sempre que um evento de portlet ocorrer, um evento OSGi específico será enviado chamando seu manipulador. O manipulador obtém todas as informações de contexto e pode atualizar o status do portlet de acordo ou enviar novos eventos. Basicamente, dentro do método de identificação, toda a funcionalidade da fase de evento do portlet pode ser usada.

Usar o AEM como portal

Use o componente Portlet para adicionar janelas de portlet a páginas AEM. As bibliotecas compartilhadas que você instala no servidor de aplicativos permitem que o componente Portlet detecte aplicativos de portlet implantados.
Para usar o AEM como portal, execute as seguintes tarefas:
  1. Instale o componente Portlet e as bibliotecas compartilhadas.
  2. Adicione o componente Portlet ao Sidekick.
  3. Configure e implante o aplicativo da Web que contém os portlets que você deseja que apareçam no componente Portal.
  4. Adicione o componente Portlet a uma página e selecione o portlet a ser exibido.
Você pode usar o componente portlet somente quando o AEM for implantado como um aplicativo da Web. ( Consulte Instalação do AEM com um servidor de aplicativos.)

Instalação do componente portlet

O arquivo JAR de Início rápido do AEM contém os arquivos de componente do portlet. Para obter os arquivos (cq-portlet-components.zip), você pode executar o Início rápido ou extrair o conteúdo.
  1. Execute ou extraia o conteúdo do arquivo JAR do Quickstart e localize o arquivo cq-portlet-components.zip de acordo:
    • Executar Início Rápido: crx-quickstart/opt/portal
    • Extrair conteúdo do Início Rápido: estático/opcional/portal
  2. Abra o Gerenciador de pacotes da instância do autor do CQ5 que é implantada no servidor de aplicativos. (https:// appserverhost : port /cq5author/crx/packmgr)
  3. Use o Gerenciador de pacotes para carregar e instalar o pacote cq-portlets-components.zip.
    O pacote instala o cq-portlet-diretor-sharing-libs-x.x.x.jar na pasta /libs/portal/diretor no repositório.
  4. Copie cq-portlet-diretor-sharing-libs-x.x.x.jar para o disco rígido. Use qualquer meio para obter o arquivo, por exemplo, FileVault ou um cliente WebDAV.
  5. Mova o arquivo cq-portlet-diretor-sharing.x.x.x.jar para a pasta da biblioteca compartilhada do servidor de aplicativos para que as classes fiquem disponíveis para aplicativos de portlet implantados.

Adicionar o componente Portlet ao Sidekick

Adicione o componente portlet ao sistema de parágrafo para que ele esteja disponível aos autores.
  1. No Sidekick, clique no ícone de régua para entrar no modo Design.
  2. Ao lado do Design of par cabeçalho acima do primeiro parágrafo, clique em Editar .
  3. Na categoria Geral do componente, marque a caixa de seleção ao lado do componente Portlet e clique em OK.

Configuração e implantação de aplicativos portlet

Implante os portlets no container da Web do servidor de aplicativos para que eles fiquem disponíveis para o componente Portal. Antes de implantar o aplicativo portlet, é necessário configurar o aplicativo para que ele carregue o servlet de container do portal AEM. Essa configuração permite que o componente Portlet acesse os portlets.
  1. Extraia o conteúdo do arquivo WAR do aplicativo portlet.
    Dica: O comando jar xf name .war extrai os arquivos.
  2. Abra o arquivo web.xml em um editor de texto.
  3. Adicione a seguinte configuração de servlet dentro do elemento de aplicativo da Web:
    <servlet>
            <servlet-name>slingportal</servlet-name>
            <servlet-class>org.apache.sling.portal.container.api.ContainerServlet</servlet-class>
            <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
            <servlet-name>slingportal</servlet-name>
            <url-pattern>/SlingPortletInvoker</url-pattern>
    </servlet-mapping>
    
    
  4. Salve o arquivo web.xml e empacote novamente o arquivo WAR.
    Dica: O jar cvf nameofapp.war * comando adiciona o conteúdo do diretório atual ao nome do arquivo ofapp.war.
  5. Implante o aplicativo portlet no servidor de aplicativos. Para obter informações, consulte a documentação do servidor de aplicativos.

Adicionar portlets à sua página do AEM

Use o componente Portal para adicionar uma janela de portlet à sua página da Web. Use as propriedades do componente para especificar o portlet a ser exibido.
  1. Na página da Web, arraste o componente Portlet do grupo Geral no Sidekick para a página.
    Depois de arrastar o componente para a página, recarregue-a para garantir que funcione corretamente.
  2. Clique no componente com o Duplo do mouse para abrir as propriedades do Portlet.
  3. No menu suspenso Portlet Entity (Entidade do portlet), selecione o portlet na lista.
  4. Marque ou desmarque a caixa de seleção Ocultar barra de título dependendo se deseja ver a barra de título do portlet.
  5. No campo Janela do portlet, informe uma ID exclusiva da janela do portlet, se desejar.
    Se você planeja usar o mesmo portlet mais de uma vez na mesma página, forneça a cada portlet uma ID de janela diferente.
  6. Clique em OK . O portlet é exibido na página do AEM.

Instalação, configuração e uso do AEM em um portlet

Para acessar o conteúdo fornecido pelo WCM AEM, o servidor de portal precisa estar equipado com o portlet do diretor do portal do AEM. Para fazer isso, instale, configure e adicione o portlet à página do portal usando as etapas fornecidas nesta seção.
Por padrão, o portlet se conecta à instância de publicação em localhost:4503 e à instância do autor em localhost:4502. Esses valores podem ser alterados durante a implantação do portlet. O diretor do portal está disponível como conteúdo no repositório em /libs/portal/diretory. Você precisará baixar o arquivo de guerra do aplicativo antes de usá-lo.

Download do arquivo de guerra

  1. Usando o Webdav ou o CRXDE Lite, navegue até /libs/portal/diretor.
  2. Baixe cq-portlet-webapp.war .
Estes procedimentos utilizam como exemplo o portal Webphere, embora sejam o mais genéricos possível; saiba que os procedimentos variam para outros portais da Web. Embora as etapas sejam essencialmente idênticas para todos os portais da Web, é necessário redefinir as etapas do portal da Web específico.

Instalação do portlet

Para instalar o portlet:
  1. Faça logon no portal com privilégios de administrador.
  2. Navegue até a parte Gerenciamento de Portlet do portal da Web.
  3. Clique em Instalar e navegue até o aplicativo portlet AEM (cq-portlet-webapp.war) que você baixou e insira outras informações importantes sobre o portlet.
    Para outras informações essenciais do portlet, você pode aceitar os padrões ou alterar os valores. Se você aceitar os valores padrão, o portlet estará disponível em https://<wps-host>:<porta>/wps/PA_CQ5_Portlet. O console de administração OSGi fornecido pelo portlet está disponível em https://<wps-host>:<porta>/wps/ PA_CQ5_Portlet/cqbridge/system/console (o nome de usuário/senha padrão é admin/admin).
  4. Certifique-se de que o aplicativo portlet seja automaticamente start selecionando essa opção ou caixa de seleção e salvando suas alterações. Você verá uma mensagem informando que sua instalação foi bem-sucedida.

Configuração do portlet

Depois de instalar o portlet, é necessário configurá-lo para que ele saiba os URLs das instâncias subjacentes do AEM (autor e publicação). Você também pode configurar outras opções.
Para configurar o portlet:
  1. Na janela Administração do portal do servidor de aplicativos, navegue até o gerenciamento de portlets, onde todos os portlets estão listados, e selecione o portlet do AEM Portal Diretor.
  2. Configure o portlet, conforme necessário. Por exemplo, talvez seja necessário alterar o URL das instâncias de autor e publicação e o URL do caminho do start. As configurações padrão são descritas em Preferências Preferências do portlet de portlet.
    Se o portlet estiver configurado para conectar-se ao autor do AEM e publicar instâncias que estejam sendo executadas em um caminho de contexto diferente de / , você precisará ativar o CQUrlInfo na configuração do Html Library Manager dessas instâncias do AEM (por exemplo, via console do Web do Felix) ou a edição não funcionará e a caixa de diálogo de preferências não aparecerá.
  3. Salve as alterações de configuração no servidor de aplicativos.
  4. Navegue até o console de administração OSGI para o portlet. O local padrão é https://<wps-host>:<port>/wps/PA_CQ5_Portlet/cqbridge/system/console/configMgr . O nome de usuário/senha padrão é admin/admin .
  5. Selecione a configuração do servidor CQ do Diretor do Portal do Dia e edite os seguintes valores:
    • URL básico do autor: O URL base da instância do autor de AEM.
    • URL base de publicação: O URL base da instância de publicação do AEM.
    • Autor É Usado Como Publicação : A instância do autor é usada como uma instância de publicação (para desenvolvimento)?
  6. Clique em Salvar . Agora você pode adicionar o portlet às páginas do portal e usar o portal.

URLs de conteúdo

Quando o conteúdo é solicitado do AEM, o portlet usa o modo de exibição atual (publicar ou criar) e o caminho atual para montar um URL completo. Com os valores padrão, o primeiro url é https://localhost:4503/content/geometrixx/en.portlet.html . O valor da extensão htmlSelector é automaticamente adicionado ao URL antes da extensão.
Se o portlet alternar para o modo de ajuda e o appendHelpViewModeAsSelector for selecionado, o help seletor também será anexado, por exemplo, https://localhost:4503/content/geometrixx/en.portlet.html.help . Se a janela do portlet estiver maximizada e a opção appendMaxWindowStateAsSelector estiver selecionada, o seletor também será anexado, por exemplo, https://localhost:4503/content/geometrixx/en.portlet.max.help .
Os seletores podem ser avaliados no AEM e um modelo diferente pode ser usado para seletores diferentes.

Usar um Mapa de URL de conteúdo no AEM

Normalmente, o caminho do start aponta diretamente para o conteúdo no AEM. Entretanto, se você quiser manter os caminhos do start no AEM em vez de nas preferências do portlet, é possível apontar o caminho do start para um mapa de conteúdo no AEM, como /var/portlets . Nesse caso, um script em execução no AEM pode usar as informações enviadas do portlet para decidir qual url é o URL do start. Ele deve emitir um redirecionamento para o URL correto.

Adicionar o portlet à página do portal

Para adicionar o portlet à página do portal:
  1. Certifique-se de estar na janela de administração do servidor de aplicativos e navegue até o local onde você gerencia as páginas. (por exemplo, no WebSphere 6.1, clique em Gerenciar páginas ).
  2. Selecione o nome do portlet e selecione uma página existente ou crie uma nova página.
  3. Edite o layout da página.
  4. Selecione o portlet e adicione-o a um container.
  5. Salve as alterações.

Uso do portlet

Para acessar a página adicionada ao portlet:
  1. No menu de personalização do portlet, configure o portlet conforme você o configurou no portal.
  2. Abra a configuração (o portlet exibe o URL do start de publicação configurado na configuração do portlet), faça as edições necessárias e, em seguida, salve-as.