Fila de Distribuição bloqueada com AccessDeniedException

Ao tentar replicar o conteúdo da página, XF ou outros recursos usando o Quick Publish, Gerenciar publicação ou Replicar, a Fila de distribuição no Autor é bloqueada. Você pode verificar isso verificando a Fila de Distribuição publicar da Interface de Distribuição (AEM > Ferramentas > Implantação > Distribuição). Siga as etapas fornecidas neste documento para resolver o problema.

Descrição description

Ambiente

  • Experience Manager
  • Experience Manager as a cloud service

Problemas/Sintomas

Ao tentar replicar algum conteúdo da Página (ou XF e outros tipos de recursos) usando o "Quick Publish", "Manage Publication" ou "Replicate", a Fila de Distribuição no Autor é Bloqueada.

Isso pode ser observado verificando a fila de publicação distribuição da interface de distribuição (AEM - Ferramentas - Implantação - Distribuição):






Ao selecionar a fila Golden Publisher (entrada em negrito da lista), mais detalhes são fornecidos e, em particular, o PATH envolvido (pode haver vários elementos aqui):





Ao examinar a guia Logs, o seguinte erro será exibido:

2023/03/08 12:11:26:238 - INFO - Solicitação aceita com o pacote de distribuição PackageMessage(pubSlingId=a113 3c97-6809-411e-a435-4eea0ecbe889, reqType=ADD, pkgId=dstrpck-1678277486031-63159f4b-c577-4079-8741-d416605 97d20, pkgType=journal_filevault, pkgLength=6330, pubAgentName=publish, userId=replication-service, paths=[ /content/wknd/fr] , deepPaths=[ ] ) em offset=158705

2023/03/08 12:11:27:459 - AVISO - Mensagem: Falha na tentativa (0/infinito) de importar o pacote de distribuição PackageMessage(pubSlingId=a1133c97-6809-411e-a435-4eea0ecbe889, reqType=ADD, pkgId=dstrpck 1678277486031-63159f4b-c577-4079-8741-d41660597d20, pkgType=journal_filevault, pkgLength=6330, pubAgentName=publish, userId=replication-service, paths=[ /content/content knd/fr] , deepPaths=[ ] ) no offset=158705 devido a "javax.jcr.AccessDeniedException: OakAccess0000: Acesso negado", o importador tentará novamente mais tarde,

Stacktrace: org.apache.sling.distribution.common.DistributionException: javax.jcr.AccessDeniedException: OakAccess0000: acesso negado

[]




É necessário Limpar a Fila (ou remover esse item) para desbloquear a fila.

Resolução resolution

Apesar do erro ser javax.jcr.AccessDeniedException, possivelmente não há relação com a ACL/permissões para os usuários do serviço de distribuição, embora isso deva ser considerado se o cenário a seguir não se aplicar ao seu caso.

Diagnóstico

O erro acima pode ocorrer em algumas situações, quando o conteúdo replicado tem uma configuração específica relacionada à propriedade especial jcr:lockIsDeep.

Para confirmar o diagnóstico, você terá que inspecionar cada um dos caminhos mencionados com qualquer uma das seguintes ferramentas que você pode acessar/é aplicável:

  1. CRX/DE para instâncias DEV
  2. o Navegador do Repositório
  3. criar um pacote de conteúdo no Gerenciador de pacotes (essa opção também faz parte da resolução)

Em seguida, é necessário verificar o nó jcr:content para cada caminho encontrado na interface do usuário da fila de distribuição e verificar se:

  • Ele tem uma propriedade jcr:lockIsDeep="(Booleano)true"
  • Ele não tem uma propriedade jcr:lockOwner="xxx"
  • ( ele não tem um valor mix:lockable no jcr:mixinTypes)

Se esse for o caso, o problema será confirmado, já que a propriedade jcr:lockIsDeep não deve estar presente sozinha. Esta propriedade deve ser sempre definida juntamente com jcr:lockOwner quando Bloquear uma página.

Não é possível definir apenas a propriedade jcr:lockIsDeep, mesmo usando a API JCR, portanto, a causa raiz que explica essa situação é principalmente por ter instalado um pacote de conteúdo corrompido com essa única propriedade.

Resolução

Para corrigir o conteúdo, a única solução é instalar um pacote no Autor que tenha as propriedades corretas definidas no nó correspondente.

É possível criar esse pacote a partir de outra instância com o conteúdo correspondente ou, se você tiver apenas esse conteúdo na instância afetada, siga estas instruções:

  1. Gerar um pacote na instância corrompida para a página com falha
  2. Baixar o pacote
  3. Extraia o .content.xml para a página/jcr:content
  4. Remova manualmente a linha com o jcr:lockIsDeep
  5. Atualize seu pacote com o arquivo novo/corrigido .content.xml
  6. Recarregue e instale o pacote modificado

Verifique novamente as propriedades da página e teste com êxito a replicação/distribuição.

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f