A ordenação de nós não é preservada ao usar ACLs rep: glob | AEM 6.0-6.2, Oak 1.x

Problema

Quando você concede a um usuário (ou grupo) acesso a um nó pai JCR ordenado, mas não aos nós filhos, quando o usuário efetua login em quem possui esse acesso, a ordem do nó filho nesse nó não é preservada.
Aqui está um exemplo demonstrando o problema:

  1. Crie uma pasta sling: OrderedFolder chamada "mysites".

  2. Crie sete páginas na pasta acima chamada "one", "two", ..., "seven".

  3. Crie dois novos grupos: testGroup e testGlobalGroup.

  4. Crie uma conta "testUser" e a adicione como membro dos dois grupos na etapa 3.

  5. Adicione as seguintes permissões para testGlobalGroup.

     "read" for "/"
              "read" for "/content/mysites" with glob for "jcr:primaryType"
              "read" for "/content/mysites" with glob for "" 
  6. Adicione as seguintes permissões para o testGroup:

    deny read access for the page "two", "four" and "six" 
  7. Faça o login como "testUser" e verifique a ordem das páginas dentro da pasta "mysites".

Causa

Isso ocorre devido a um bug no repositório Oak JCR, no qual as ACLs rep: glob são aplicadas a propriedades ocultas - https://issues.apache.org/jira/browse/OAK-5354.

Resolução

Isso é corrigido no AEM6.3 e em versões posteriores. 

No entanto, você pode contornar esse bug em versões mais antigas, fazendo o seguinte:

  1. Acesse http://host:port/crx/de/index.jsp e faça login como admin.

  2. Navegue até o nó pai.

  3. Clique na guia "Controle de acesso" no painel inferior direito.

  4. Crie a seguinte entrada de controle de acesso clicando no ícone de mais na cor verde em 
    Allow, jcr:read, rep:glob=/:childOrder.

Abaixo está uma captura de tela de como sua ACL ficará depois disso:

Logotipo da Adobe

Fazer logon em sua conta