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.

  1. Vaya a la aplicación CRXDE lite /crx/de/index.jsp e inicie sesión como usuario administrador (en el sistema antiguo)

  2. Ir a Herramientas => Consulta

  3. En la parte inferior Consulta, introduzca esta consulta para encontrar al usuario administrador:

    /jcr:root/home/users//element(*,rep:User)[@rep:principalName="admin"]

  4. Haga clic en Ejecutar y copie la ruta del nodo de usuario admin en los resultados a un archivo de texto.

  5. Repita el paso 3 con una consulta para un usuario anónimo:

    /jcr:root/home/users//element(*,rep:User)[@rep:principalName="anonymous"]

  6. 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

  7. Vaya al administrador de paquetes AEM, http://host:port/crx/packmgr/index.jsp, e inicie sesión como administrador.

  8.  Crear un paquete "usuarios"

  9. 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

  10. Crear el paquete.

  11. Descargar el paquete.

  12. Descomprimir el archivo zip del paquete en su ordenador.

  13. Abrir el archivo META-INF/vault/filter.xml en un editor de texto.

  14. 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>
  15.  Volver a comprimir el contenido del paquete modificado para que incluya el cambio.

  16. Crear un paquete "groups" que contenga una regla de filtro /home/groups.

  17. Repita los pasos 10-15 para el paquete de grupos.

  18. (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.

  19. Instalar el paquete de usuarios en el nuevo sistema.

  20. Instalar el paquete de grupos en el nuevo sistema