Implementazione di Cloud Manager non riuscita a causa di autorizzazioni sling-distribution-importer | AEM Cloud Service

Problema

Durante l’implementazione di Cloud Manager in ambienti AEM as a Cloud Service, il passaggio di distribuzione non riesce e si verificano errori simili a quelli riportati di seguito.

[Queue Processor for Subscriber agent forwardPublisherSubscriber] org.apache.jackrabbit.vault.fs.io.Importer Error while committing changes. Retrying import from checkpoint at /. Retries 4/10 
 
 
[Queue Processor for Subscriber agent forwardPublisherSubscriber] org.apache.sling.distribution.journal.impl.subscriber.DistributionSubscriber Error processing queue item 
org.apache.sling.distribution.common.DistributionException: Error processing distribution package dstrpck-1583514457813-c81e7751-2da6-4d00-9814-434187f08d32. Retry attempts 162/infinite. 
... 
Caused by: org.apache.sling.api.resource.PersistenceException: Unable to commit changes to session. 
... 
Caused by: javax.jcr.AccessDeniedException: OakAccess0000: Access denied 
 
 
[EventAdminAsyncThread #7] org.apache.sling.distribution.journal.impl.publisher.DistributionPublisher [null] Error processing distribution package dstrpck-1583514457813-c81e7751-2da6-4d00-9814-434187f08d32. Retry attempts 344/infinite. Message: Error trying to extract package at path /etc/packages/com.myapp/myapp-base.ui.content-5.1.0-SNAPSHOT.zip

Causa

L’utente sling-distribution-importer necessita di autorizzazioni aggiuntive in base ai percorsi di contenuto definiti nel pacchetto ui.content.  In genere questo significa che occorre aggiungere autorizzazioni sia per /conf che per /var.

Soluzione

Per risolvere questo problema, aggiungi al pacchetto di distribuzione delle app uno script di configurazione OSGi RepositoryInitializer, per aggiungere ACL per l’utente sling-distribution-importer.
Nell’errore di esempio riportato qui sopra, il pacchetto myapp-base.ui.content-*.zip include contenuti in /conf e /var/workflow.  Affinché la distribuzione possa essere effettuata senza errori, è necessario aggiungere le autorizzazioni sling-distribution-importer per tali percorsi. 

Di seguito è riportato un esempio [1] di una configurazione OSGi di questo tipo per aggiungere ulteriori autorizzazioni per l’utente sling-distribution-importer. Questa configurazione aggiunge le autorizzazioni in /var.  Il file xml qui sotto [1] deve essere aggiunto al pacchetto dell’applicazione in /apps/myapp/config (dove myapp è la cartella in cui è memorizzato il codice dell’applicazione).

[1] org.apache.sling.jcr.repoinit.RepositoryInitializer-DistributionService.config

Logo Adobe

Accedi al tuo account