Cloud Manager-Implementierung schlägt wegen Berechtigungen von Sling-Distribution-Importer fehl | AEM Cloud Service

Problem

Bei einer Implementierung von Cloud Manager auf AEM als Cloud Service-Umgebung schlägt der Implementierungsschritt fehl und Fehler wie der folgende werden angezeigt.

[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

Ursache

Der Sling-Distribution-Importer-Benutzer benötigt zusätzliche Berechtigungen für die im ui.content-Paket definierten Inhaltspfade.  Das bedeutet normalerweise, dass wir Berechtigungen für sowohl /conf als auch /var hinzufügen müssen.

Lösung

Dazu müssen Sie ein RepositoryInitializer OSGi-Konfigurationsskript zu Ihrem App-Implementierungspaket hinzufügen, um ACLs für den Sling-Distribution-Import-Benutzer bereitzustellen.
Im obigen beispielhaften Fehler enthält die Datei package myapp-base.ui.content-*.zip den Inhalt unter /conf und /var/workflow.  Damit die Implementierung nicht fehlschlägt, müssten wir Berechtigungen für Sling-Distribution-Importer unter diesen Pfaden hinzufügen. 

Hier ist ein Beispiel [1] einer solchen OSGi-Konfiguration, die zusätzliche Berechtigungen für den Benutzer des Sling-Distribution-Importers hinzufügt.  Bei dieser Konfiguration werden Berechtigungen unter /var hinzugefügt.  Diese XML-Datei unten [1] muss dem Anwendungspaket unter /apps/myapp/config hinzugefügt werden (wobei „myapp“ der Ordner ist, in dem Ihr Anwendungs-Code gespeichert wird).

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

 Adobe

Schneller und einfacher Hilfe erhalten

Neuer Benutzer?

Adobe MAX 2024

Adobe MAX
Die Konferenz für Kreative

14. bis 16. Oktober in Miami Beach und online

Adobe MAX

Die Konferenz für Kreative

14. bis 16. Oktober in Miami Beach und online

Adobe MAX 2024

Adobe MAX
Die Konferenz für Kreative

14. bis 16. Oktober in Miami Beach und online

Adobe MAX

Die Konferenz für Kreative

14. bis 16. Oktober in Miami Beach und online