Navigieren Sie zu der App CRXDE Lite, /crx/de/index.jsp, und melden Sie sich als Benutzer mit Administratorrechten (auf dem alten System) an.
Problem
Beim Migrieren von Benutzern und Gruppen von einer AEM zu einer anderen über Package Manager wird der folgende Fehler angezeigt:
26.01.2017 16:03:20.024 *ERROR* [qtp2078058939-7783] org.apache.jackrabbit.vault.fs.io.Importer Error while committing : javax.jcr.nodetype.ConstraintViolationException: OakConstraint0027: The admin user cannot be removed. javax.jcr.nodetype.ConstraintViolationException: OakConstraint0027: The admin user cannot be removed. Caused by: org.apache.jackrabbit.oak.api.CommitFailedException: OakConstraint0027: The admin user cannot be removed
Umgebung
CQ5.x, AEM 6.x
Lösung
Wenn Sie Benutzer und Gruppen verpacken, sollten Sie sicherstellen, dass Sie keine Verpackung des Benutzers einschließlich des Administrators und anonymen Benutzern vorsehen. Zusätzlich müssen Sie den Filtermodus zum Zusammenführen von Paketen verwenden.
-
-
Gehen Sie auf Tools => Abfrage
-
Geben Sie die Abfrage unten auf dem Abfragefeld ein, um den Benutzer mit Administratorrechten zu finden:
/jcr:root/home/users//element(*,rep:User)[@rep:principalName="admin"]
-
Klicken Sie Ausführen und kopieren Sie den Pfad des Administrator-Benutzerknotens in die Ergebnissen in eine Textdatei.
-
Wiederholen Sie Schritt 3 mit einer Abfrage für anonyme Benutzer:
/jcr:root/home/users//element(*,rep:User)[@rep:principalName="anonymous"]
-
Kliecken Sie Ausführen und kopieren Sie den Knoten des anonymen Benutzers in den Ergebnissen in eine Textdatei (nun haben Sie zwei Pfade, einen für „Administrator“ und einen für „Anonym“)
Zum Beispiel:
/home/users/Q/QY5FIMXeQIbGpwZtQ3Dv – Benutzer mit Administratorrechten im System, in dem ich das Paket erstelle
/home/users/K/Kj1406Qo9IDODc_nk5Ib – anonymer Benutzer im System, in dem ich das Paket erstelle -
Gehen Sie zum AEM-Paketmanager, http://host:port/crx/packmgr/index.jsp, und melden Sie sich als Administrator an.
-
Erstellen Sie ein Paket „Benutzer“
-
Fügen Sie der Konfiguration für /home/users mit diesen Auschlussregeln (im /home/users-Filter) einen Filter hinzu:
exclude /home/users/.*/.tokens
exclude /home/users/Q/QY5FIMXeQIbGpwZtQ3Dv
exclude /home/users/K/Kj1406Qo9IDODc_nk5Ib
exclude /home/users/a/admin
exclude /home/users/a/anonymous
exclude /home/users/system
exclude /home/users/geometrixx
exclude /home/users/media
exclude /home/users/projects
exclude /home/users/mac -
Erstellen Sie das Paket.
-
Laden Sie das Paket herunter.
-
Öffnen Sie die Zip-Datei des Pakets auf Ihrem Computer.
-
Öffnen Sie die Datei META-INF/vault/filter.xml in einem Texteditor.
-
Fügen Sie mode="merge" dem Tag hinzu, z. B.:
<?xml version="1.0" encoding="UTF-8"?> <workspaceFilter version="1.0"> <filter root="/home/users" mode="merge"> <exclude pattern="/home/users/.*/.tokens"/> <exclude pattern="/home/users/Q/QY5FIMXeQIbGpwZtQ3Dv"/> <exclude pattern="/home/users/K/Kj1406Qo9IDODc_nk5Ib"/> <exclude pattern="/home/users/a/admin"/> <exclude pattern="/home/users/a/anonymous"/> <exclude pattern="/home/users/system"/> <exclude pattern="/home/users/geometrixx"/> <exclude pattern="/home/users/media"/> <exclude pattern="/home/users/projects"/> <exclude pattern="/home/users/mac"/> </filter> </workspaceFilter>
-
Komprimieren Sie die geänderten Paketinhalte wieder, sodass sie die Änderung enthalten.
-
Erstellen Sie ein Paket „Gruppen“, das eine Filterregel /home/groups enthält.
-
Wiederholen Sie die Schritte 10-15 für das Gruppenpaket.
-
(Nur Aktualisierung): Wenn Sie eine Migration auf eine neuere AEM-Version durchführen, installieren Sie eine neue lokale AEM-Instanz (ohne Beispielinhalte) und installieren Sie dort das Benutzer- und das Gruppenpaket. Führen Sie anschließend eine ersetzende Aktualisierung für diese Instanz durch. Nach der Aktualisierung verpacken Sie die Benutzer und Gruppen erneut und laden die aktuellere Version der Pakete herunter.
-
Installieren Sie das Benutzerpaket auf dem neuen System.
-
Installieren Sie das Gruppenpaket auf dem neuen System.
Bei Ihrem Konto anmelden