Problem

Wenn Sie einem Benutzer (oder einer Gruppe) Zugriff auf einen geordneten übergeordneten JCR-Knoten gewähren, aber nicht auf die untergeordneten Knoten, dann wird der untergeordnete Knoten nicht beibehalten, wenn sich der Benutzer anmeldet, der diesen Zugriff hat.
Hier ein Beispiel, das das Problem verdeutlicht:

  1. Erstellen Sie einen sling:OrderedFolder mit dem Namen „mysites“.

  2. Erstellen Sie sieben Seiten im oben genannten Ordner „one“, „two“, ..., „seven“.

  3. Legen Sie zwei neue Gruppen an - testGroup und testGlobalGroup.

  4. Erstellen Sie ein Konto „testUser“ und fügen Sie es als Mitglied der beiden Gruppen in Schritt 3 hinzu.

  5. Fügen Sie für testGlobalGroup die folgenden Berechtigungen hinzu.

     "read" for "/"
              "read" for "/content/mysites" with glob for "jcr:primaryType"
              "read" for "/content/mysites" with glob for "" 
  6. Fügen Sie für die testGroup die folgenden Berechtigungen hinzu:

    deny read access for the page "two", "four" and "six" 
  7. Melden Sie sich als „testUser“ an und überprüfen Sie die Reihenfolge der Seiten im Ordner „mysites“.

Ursache

Dies ist auf einen Fehler im Oak-JCR-Repository zurückzuführen, bei dem die rep:glob-ACLs auf versteckte Eigenschaften angewendet werden - https://issues.apache.org/jira/browse/OAK-5354.

Lösung

Dies ist in AEM 6.3 und späteren Versionen behoben. 

Sie können diesen Fehler jedoch in älteren Versionen umgehen, indem Sie folgende Schritte ausführen:

  1. Wechselns Sie zu http://host:port/crx/de/index.jsp und melden Sie sich als Administrator an.

  2. Navigieren Sie zum übergeordneten Knoten.

  3. Klicken Sie unten rechts auf die Registerkarte „Zugriffskontrolle“.

  4. Erstellen Sie den folgenden Zugriffskontrolleintrag, indem Sie auf das grüne Plussymbol in
    Allow, jcr:read, rep:glob=/:childOrder klicken.

Nachfolgend finden Sie einen Screenshot, wie Ihre ACL danach aussehen kann:

access_control

Dieses Werk unterliegt den Bedingungen der Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.  Twitter™- und Facebook-Beiträge fallen nicht unter die Bedingungen der Creative Commons-Lizenz.

Rechtliche Hinweise   |   Online-Datenschutzrichtlinie