Vai all'applicazione CRXDE lite /crx/de/index.jsp e accedi come utente amministratore (sul vecchio sistema).
Problema
Durante la migrazione di utenti e gruppi da un'istanza AEM ad un'altra tramite Gestione pacchetti, viene mostrato il seguente errore:
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
Ambiente
CQ5.x, AEM 6.x
Risoluzione
Quando crei pacchetti utenti e gruppi, assicurati di escludere gli utenti preconfigurati, compreso l'amministratore e gli utenti anonimi. Inoltre, è necessario utilizzare la modalità di filtraggio dei pacchetti di fusione.
-
-
Vai a Strumenti => Query
-
Nella casella Query in basso, inserisci questa query per trovare l'utente amministratore:
/jcr:root/home/users//element(*,rep:User)[@rep:principalName="admin"]
-
Fai clic su Esegui e copia il percorso del nodo utente amministratore nei risultati in un file di testo.
-
Ripeti il passaggio 3 con una query per utente anonimo:
/jcr:root/home/users//element(*,rep:User)[@rep:principalName="anonymous"]
-
Fai clic suEsegui e copia il percorso del nodo utente anonimo nei risultati su un file di testo (ora dovresti avere due percorsi, uno per "amministratore" e uno per "anonimo")
Per esempio:
/home/users/Q/QY5FIMXeQIbGpwZtQ3Dv - utente amministratore nel sistema in cui sto creando il pacchetto
/home/users/K/Kj1406Qo9IDODc_nk5Ib - utente anonimo del sistema in cui sto creando il pacchetto -
Vai al gestore di pacchetti AEM, http://host:port/crx/packmgr/index.jsp e accedi come amministratore.
-
Crea un pacchetto "utenti"
-
Aggiungi un filtro alla configurazione del pacchetto per /home/users con queste regole di esclusione (sul filtro /home/users):
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 -
Crea il pacchetto.
-
Scarica il pacchetto.
-
Estrai il file zip del pacchetto sul computer.
-
Apri il file META-INF/vault/filter.xml in un editor di testo.
-
Aggiungi modalità="fusione" al tag, per esempio:
<?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>
-
Ricomprimi i contenuti modificati del pacchetto in modo che includa la modifica.
-
Crea un pacchetto "gruppi" che contiene un filtro rule /home/groups.
-
Ripeti i passaggi 10-15 per il pacchetto gruppi.
-
(Solo aggiornamento): Se esegui la migrazione alla nuova versione AEM, installa una nuova istanza AEM locale (con nosamplecontent) e installa lì il pacchetto utenti e il pacchetto gruppi. Poi esegui un aggiornamento in uso su quell'istanza. Dopo l'aggiornamento, inserisci nuovamente gli utenti in un pacchetto, poi i gruppi e scarica la versione più recente dei pacchetti.
-
Installa il pacchetto utenti sul nuovo sistema.
-
Installa il pacchetto gruppi sul nuovo sistema.