問題点

順序付けされた JCR 親ノードにはユーザー(またはグループ)へのアクセスを許可し、子ノードへのアクセスを許可しない場合、ユーザーがそのアクセス権を持つユーザーにログインすると、そのノードの下にある子ノードは保存されません。
問題を示す例を以下に示します:

  1. 「mysites」という名前の sling:OrderedFolder フォルダーを作成します。

  2. 上記のフォルダーに「1」、「2」、...、「7」という 7 ページを作成します。

  3. 2 つの新しいグループ testGroup と testGlobalGroup を作成します。

  4. 「testUser」のアカウントを作成し、手順 3 の 2 つのグループのメンバーとして追加します。

  5. testGlobalGroup に次の権限を追加します。

     "read" for "/"
              "read" for "/content/mysites" with glob for "jcr:primaryType"
              "read" for "/content/mysites" with glob for "" 
  6. testGroup に次の権限を追加します:

    deny read access for the page "two", "four" and "six" 
  7. 「testUser」としてログインし、「mysites」フォルダー内のページの順序を確認します。

原因

これは、rep:glob ACLs が隠れたプロパティに適用される、という Oak JCR リポジトリのバグが原因です - https://issues.apache.org/jira/browse/OAK-5354

解決策

これは、AEM 6.3 および以降のバージョンで修正されています。 

ただし、このバグを回避するには、次の操作を行います:

  1. http://host:port/crx/de/index.jsp にアクセスするには、管理者としてログインしてください。

  2. 親ノードを参照します。

  3. 右下のパネルの「アクセス制御」タブをクリックします。


  4. Allow, jcr:read, rep:glob=/:childOrder. にある緑色のプラスアイコンをクリックし、次のアクセス制御のエントリを作成します。

以下に、ACL がこの後どのように表示されるかについてのスクリーンショットを示します:

access_control

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

法律上の注意   |   プライバシーポリシー