Vaya a la aplicación CRXDE lite /crx/de/index.jsp e inicie sesión como usuario administrador (en el sistema antiguo)
Problema
Al migrar usuarios y grupos de una instancia de AEM a otra a través del Administrador de Paquetes, se muestra el siguiente error:
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
Entorno
CQ5.x, AEM 6.x
Resolución
Al empaquetar usuarios y grupos, debe asegurarse de evitar empaquetar a los usuarios externos, incluidos el administrador y los usuarios anónimos. Además, debe utilizar el modo de filtro de paquete de fusión.
-
-
Ir a Herramientas => Consulta
-
En la parte inferior Consulta, introduzca esta consulta para encontrar al usuario administrador:
/jcr:root/home/users//element(*,rep:User)[@rep:principalName="admin"]
-
Haga clic en Ejecutar y copie la ruta del nodo de usuario admin en los resultados a un archivo de texto.
-
Repita el paso 3 con una consulta para un usuario anónimo:
/jcr:root/home/users//element(*,rep:User)[@rep:principalName="anonymous"]
-
Haga clic en Ejecutar y copie la ruta del nodo de usuario anónimo de los resultados en un archivo de texto (de modo que ahora debería tener dos rutas, una para "admin" y otra para "anónimo")
:
home/home/users/Q/Q/QY5FIMXeQIbGpwZtQ3Dv - usuario administrador en el sistema donde estoy creando el paquete
/home/users/K/Kj1406Qo9IDODc_nk5Ib - usuario anónimo en el sistema donde estoy creando el paquete -
Vaya al administrador de paquetes AEM, http://host:port/crx/packmgr/index.jsp, e inicie sesión como administrador.
-
Crear un paquete "usuarios"
-
Añada un filtro a la configuración del paquete para /home/users con estas reglas de exclusión (en el filtro /home/users):
excluir /home/users/.*Los tokens
excluyen /home/usuarios/Q/QY5FIMXeQIbGpwZtQ3Dv
excluyen /home/users/K/Kj1406Qo9IDODc_nk5Ib
excluyen /home/usuarios/a/admin
excluyen /home/usuarios/a/anónimos
excluyen /home/usuarios/sistema
excluyen /home/usuarios/usuarios/usuarios/geometrixx
excluyen /home/usuarios/usuarios/medios
excluyen /home/usuis/usuarios/usuarios/mac -
Crear el paquete.
-
Descargar el paquete.
-
Descomprimir el archivo zip del paquete en su ordenador.
-
Abrir el archivo META-INF/vault/filter.xml en un editor de texto.
-
Añadir mode="merge" a la etiqueta, por ejemplo:
<?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>
-
Volver a comprimir el contenido del paquete modificado para que incluya el cambio.
-
Crear un paquete "groups" que contenga una regla de filtro /home/groups.
-
Repita los pasos 10-15 para el paquete de grupos.
-
(sólo actualización): Si realiza la migración a una versión más reciente de AEM, instale una nueva instancia local de AEM (con nosamplecontent) e instale allí el paquete de usuario y el paquete de grupo. A continuación, realice una actualización in situ en esa instancia. Después de la actualización, vuelva a empaquetar a los usuarios de nuevo, luego a los grupos de nuevo y descargue la versión más reciente de los paquetes.
-
Instalar el paquete de usuarios en el nuevo sistema.
-
Instalar el paquete de grupos en el nuevo sistema