Problema

Não é possível efetuar logon em instâncias do AEM devido à falta de ACLs do cryptoservice. O erro [1] abaixo é observado no error.log na inicialização.

07.12.2017 15:24:31.980 *ERROR* [FelixStartLevel] com.adobe.granite.crypto.internal.Activator setupCryptoSupport: Failed creating CryptoSupport Implementation: 
javax.jcr.AccessDeniedException: Root node is not accessible.
    at org.apache.jackrabbit.oak.jcr.session.SessionImpl$4.perform(SessionImpl.java:294)
    at org.apache.jackrabbit.oak.jcr.session.SessionImpl$4.perform(SessionImpl.java:288)
    at org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:208)
    at org.apache.jackrabbit.oak.jcr.session.SessionImpl.getRootNode(SessionImpl.java:288)
    at com.adobe.granite.crypto.internal.Activator.getOrCreateKeyNode(Activator.java:290)
    at com.adobe.granite.crypto.internal.Activator.writeKey(Activator.java:320)
    at com.adobe.granite.crypto.internal.Activator.loadOrCreateKey(Activator.java:258)
    at com.adobe.granite.crypto.internal.Activator.startCryptoSupport(Activator.java:162)
    at com.adobe.granite.crypto.internal.Activator$1.serviceChanged(Activator.java:127)
    at com.adobe.granite.crypto.internal.Activator.start(Activator.java:138)
    at org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:697)
    at org.apache.felix.framework.Felix.activateBundle(Felix.java:2226)
    at org.apache.felix.framework.Felix.startBundle(Felix.java:2144)
    at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1371)
    at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)
    at java.lang.Thread.run(Thread.java:745)

Causa

Esse problema é causado quando pacotes de permissões personalizadas são instalados na instância que sobrescrevem as ACLs prontas.

Resolução

Opção A: criar a ACL ausente

  1. Vá para http://aemhost:port/crx/de/index.jsp e faça logon como administrador.

  2. Navegue até /etc/key.

  3. Selecione a aba Controle de acesso .

  4. Conceda a permissão cryptoservice user rep:all no nó.

Opção B: criar um pacote para migrar as permissões de uma instalação limpa do AEM 

  1. Configure uma instância limpa do AEM da mesma versão em que você observou o erro. Aplique o mesmo service pack, hotfixes e/ou cumulative fix pack à instância.

  2. Vá para http://aemhost:port/crx/packmgr/index.jsp e faça logon como admin.

  3. Crie um novo pacote.

  4. Clique em Editar.

  5. Selecione a guia Filtros.

  6. Adicione uma nova regra para /etc/key.

  7. Clique na guia Avançado.

  8. Configure AC Handling para o modo Merge.

  9. Clique em Salvar.

  10. Clique em Compilar.

  11. Faça download do pacote.

  12. Carregue e instale o pacote no gerenciador de pacotes da instância AEM com erro.

Se você precisar instalar pacotes de permissões personalizados novamente, use a opção de pacote AC Handling MergePreserve no momento da construção do pacote na instância de origem.

Esta obra está licenciada sob uma licença não adaptada da Creative Commons Attribution-Noncommercial-Share Alike 3.0  As publicações do Twitter™ e do Facebook não são cobertas pelos termos do Creative Commons.

Avisos legais   |   Política de privacidade online