Problème

Lors de la migration d’utilisateurs et de groupes à partir d’une instance AEM à une autre via le Gestionnaire de modules, l’erreur ci-dessous s’affiche :

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

Environnement

CQ5.x, AEM 6.x

Résolution

Lors du conditionnement des utilisateurs et des groupes, veillez à éviter d’exclure les utilisateurs de la boîte, y compris les utilisateurs administrateur et anonymes.  En outre, vous devez utiliser le mode de filtre de module de fusion.

  1. Accédez à l'application CRXDE lite /crx/de/index.jsp et connectez-vous comme utilisateur administrateur (sur l'ancien système).

  2. Accédez à Outils > Requête

  3. Dans le bas de la boîte de dialogue Requête, entrez cette requête pour rechercher l’utilisateur administrateur :

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

  4. Cliquez sur Exécuter et copiez le chemin du nœud de l’utilisateur administrateur dans les résultats dans un fichier texte.

  5. Répétez l'étape 3 avec une requête pour un utilisateur anonyme :

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

  6. Cliquez sur Exécuter et copiez le chemin du nœud de l’utilisateur anonyme dans les résultats dans un fichier texte (vous devez disposer désormais de deux chemins, l’un pour « administrateur » et l’autre pour « anonyme »).
    Par exemple :
    /home/users/Q/QY5FIMXeQIbGpwZtQ3Dv - l’utilisateur administrateur dans le système où je crée le contenu
    /home/users/K/Kj1406Qo9IDODc_nk5Ib - l’utilisateur anonyme dans le système où je crée le contenu

  7. Accédez au gestionnaire de contenu AEM, http://host:port/crx/packmgr/index.jsp et connectez-vous en tant qu’administrateur.

  8.  Créez un contenu « utilisateurs ».

  9. Ajoutez un filtre à la configuration de contenu pour /home/users avec ces règles d’exclusion (sur le filtre /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

  10. Compilez le package.

  11. Téléchargez le package.

  12. Décompressez le fichier zip du package sur votre ordinateur.

  13. Ouvrez le fichier META-INF/vault/filter.xml dans un éditeur de texte.

  14. Ajoutez le mode="merge" à la balise, par exemple :

       










    <?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.  Recompressez les contenus du package modifiés afin qu'il inclue le changement.

  16. Créez un contenu de «groupes» contenant une règle de filtrage /home/groups.

  17. Répétez les étapes 10 à 15 pour le contenu de groupes.

  18. (Mise à niveau uniquement) : si vous effectuez une migration vers la version plus récente de AEM, installez une nouvelle instance AEM locale (avec nosamplecontent) et installez le contenu des utilisateurs et celui des groupes.  Effectuez ensuite une mise à niveau statique sur cette instance. Après la mise à niveau, recréez ensuite les utilisateurs, puis les groupes de nouveau et téléchargez la version plus récente des contenus.

  19. Installez le contenu d’utilisateurs sur le nouveau système.

  20. Installez le contenu de groupes sur le nouveau système.

Ce produit est distribué sous licence Creative Commons Attribution - Pas d’utilisation commerciale - Partage à l’identique 3.0 non transposé  Les publications Twitter™ et Facebook ne sont pas couvertes par les dispositions Creative Commons.

Mentions légales   |   Politique de confidentialité en ligne