javax.jcr.nodetype.ConstraintViolationException: Errore OakConstraint0027 durante la migrazione di utenti e gruppi in AEM

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.

  1. Vai all'applicazione CRXDE lite /crx/de/index.jsp e accedi come utente amministratore (sul vecchio sistema).

  2. Vai a Strumenti => Query

  3. Nella casella Query in basso, inserisci questa query per trovare l'utente amministratore:

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

  4. Fai clic su Esegui e copia il percorso del nodo utente amministratore nei risultati in un file di testo.

  5. Ripeti il passaggio 3 con una query per utente anonimo:

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

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

  7. Vai al gestore di pacchetti AEM, http://host:port/crx/packmgr/index.jsp e accedi come amministratore.

  8.  Crea un pacchetto "utenti"

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

  10. Crea il pacchetto.

  11. Scarica il pacchetto.

  12. Estrai il file zip del pacchetto sul computer.

  13. Apri il file META-INF/vault/filter.xml in un editor di testo.

  14. 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>
  15.  Ricomprimi i contenuti modificati del pacchetto in modo che includa la modifica.

  16. Crea un pacchetto "gruppi" che contiene un filtro rule /home/groups.

  17. Ripeti i passaggi 10-15 per il pacchetto gruppi.

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

  19. Installa il pacchetto utenti sul nuovo sistema.

  20. Installa il pacchetto gruppi sul nuovo sistema.

Logo Adobe

Accedi al tuo account