Problem

Anmeldung bei AEM-Instanzen aufgrund fehlender Cryptoservice-ACLs nicht möglich. Der Fehler [1] unten wird in error.log beim Start erkannt.

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)

Ursache

Dieses Problem tritt auf, wenn benutzerspezifische Berechtigungspakete auf der Instanz installiert werden, die vorkonfigurierte ACLs überschreiben.

Lösung

Option A: fehlende ACL erstellen

  1. Gehen Sie auf http://aemhost:port/crx/de/index.jsp und melden Sie sich als Administrator an.

  2. Navigieren Sie zu /etc/key.

  3. Wählen Sie die Registerkarte Zugangskontrolle aus.

  4. Gewähren Sie cryptoservice Benutzer rep:all Berechtigung auf dem Knoten.

Option B: Erstellen Sie ein Paket, um die Berechtigungen von einer sauberen AEM-Installation zu migrieren.

  1. Richten Sie eine saubere AEM-Instanz auf derselben Version ein, auf der Sie den Fehler erkannt haben. Wenden Sie dasselbe Service Pack, Hotfixes und/oder kumulative Fix-Pakete auf die Instanz an.

  2. Gehen Sie auf http://aemhost:port/crx/packmgr/index.jsp und melden Sie sich als Administrator an.

  3. Erstellen Sie ein neues Paket.

  4. Klicken Sie auf "Bearbeiten".

  5. Wählen Sie die Karteikarte Filter.

  6. Fügen Sie /etc/key eine neue Regel hinzu.

  7. Klicken Sie auf die Karteikarte Fortgeschritten.

  8. Stellen Sie AC Handling auf den Modus Merge.

  9. Klicken Sie auf Speichern.

  10. Klicken Sie auf Erstellen.

  11. Paket herunterladen.

  12. Laden Sie das Paket hoch und installieren Sie es in den Package Manager der fehlerhaften AEM-Instanz.

Wenn Sie benutzerdefinierte Erlaubnispakete neu installieren müssen, verwenden Sie das Paket MergePreserve AC Handling zum Zeitpunkt der Erstellung des Pakets auf der Quellinstanz.

Dieses Werk unterliegt den Bedingungen der Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.  Twitter™- und Facebook-Beiträge fallen nicht unter die Bedingungen der Creative Commons-Lizenz.

Rechtliche Hinweise   |   Online-Datenschutzrichtlinie