「mysites」という名前の sling:OrderedFolder フォルダーを作成します。
問題点
順序付けされた JCR 親ノードにはユーザー(またはグループ)へのアクセスを許可し、子ノードへのアクセスを許可しない場合、ユーザーがそのアクセス権を持つユーザーにログインすると、そのノードの下にある子ノードは保存されません。
問題を示す例を以下に示します:
-
-
上記のフォルダーに「1」、「2」、...、「7」という 7 ページを作成します。
-
2 つの新しいグループ testGroup と testGlobalGroup を作成します。
-
「testUser」のアカウントを作成し、手順 3 の 2 つのグループのメンバーとして追加します。
-
testGlobalGroup に次の権限を追加します。
"read" for "/" "read" for "/content/mysites" with glob for "jcr:primaryType" "read" for "/content/mysites" with glob for ""
-
testGroup に次の権限を追加します:
deny read access for the page "two", "four" and "six"
-
「testUser」としてログインし、「mysites」フォルダー内のページの順序を確認します。
原因
これは、rep:glob ACLs が隠れたプロパティに適用される、という Oak JCR リポジトリのバグが原因です - https://issues.apache.org/jira/browse/OAK-5354。
解決策
これは、AEM 6.3 および以降のバージョンで修正されています。
ただし、このバグを回避するには、次の操作を行います:
-
http://host:port/crx/de/index.jsp にアクセスするには、管理者としてログインしてください。
-
親ノードを参照します。
-
右下のパネルの「アクセス制御」タブをクリックします。
-
Allow, jcr:read, rep:glob=/:childOrder. にある緑色のプラスアイコンをクリックし、次のアクセス制御のエントリを作成します。
以下に、ACL がこの後どのように表示されるかについてのスクリーンショットを示します: