AccessDeniedException でブロックされた配布キュー

Quick Publish、公開を管理、またはレプリケートを使用してページコンテンツ、XF、またはその他のリソースをレプリケートしようとすると、オーサーの配布キューがブロックされます。 これを確認するには、配布 UI から publish 配布キューをチェックします(AEM > Tools > Deployment > Distribution)。 このドキュメントに記載されている手順に従って、問題を解決します。

説明 description

環境

  • Adobe Experience Manager
  • Experience Manager as a cloud service

問題/症状

「クイックPublish」、「公開を管理」、「レプリケート」を使用して一部のページコンテンツ(または XF およびその他の種類のリソース)をレプリケートしようとすると、作成者の配布キューが ブロック されます。

これは、配布 UI から publish Distribution Queue を確認することで確認できます(AEM - ツール – デプロイメント – 配布)。






Golden Publisher キュー(リストから太字で入力)を選択すると、詳細が表示され、特に関連する PATH (ここでは複数の要素が存在できます):





ログ 」タブを調べると、次の対応するエラーが表示されます。

2023/03/08 12:11:26:238 – 情報 – 配布パッケージでリクエストを受け付けた PackageMessage (pubId=a117-68099-41 1e-a435-4eea0ecbe889, reqType=ADD, pkgId=dstrpck-1678277486031-63159f4b-c577-4079-8741-d41660597d20, pkgType=journal_filevault, pkgLength=6330, pubAgentName=publish, userId=replication-service, paths=[ /content/wknd/fr] , deep パス=[ ]) (オフセット=158705)

2023/03/08 12:11:27:459 – 警告 – メッセージ:配布パッケージ PackageMessage (pubSlingId=a1133c97-6809-411e-a435-4eea0ecbe889, reqType=ADD, pkgId=dstrpck-1678277486031-63159f4b-c 577-4079-8741-d41660597d20, pkgType=journal_filevault, pkgLength=6330, pubAgentName=publish, userId=replication-service, paths=[ /content/wknd/fr], deepPaths=[ ]) at offset=158705 が'javax.jcr.AccessDeniedException: OakAccess00000: Access denied'のため、インポーターは後で再試行します。

Stacktrace:org.apache.sling.distribution.common.DistributionException: javax.jcr.AccessDeniedException: OakAccess0000:Access denied

[]




キューのブロックを解除するには、キューをクリア (またはその項目を削除)する必要があります。

解決策 resolution

エラーが javax.jcr.AccessDeniedException 生しているにもかかわらず、配布サービスユーザーの ACL/権限とは関係がない可能性がありますが、次のシナリオがお客様の場合に適用されない場合は、これを考慮する必要があります。

診断

レプリケートされたコンテンツに、特別な jcr:lockIsDeep プロパティに関連する特定の設定がある場合は、上記のエラーが発生することがあります。

診断を確定するには、(前述の各パス を、アクセス可能または適用可能な次のツールのいずれかで検査する必要があります

  1. 開発インスタンスのCRX/DE
  2. ​ リポジトリブラウザー ​
  3. パッケージマネージャーでのコンテンツパッケージの作成(このオプションも解決の一部です)

次に、配布キュー UI に表示されている各パスの jcr:content ノードを確認し、次の点を確認する必要があります。

  • does have a jcr:lockIsDeep="(Boolean) true" プロパティ
  • jcr:lockOwner="xxx" プロパティ ありません
  • jcr:mixinTypes** に mix:lockable の値** ありません)

この場合、jcr:lockIsDeep プロパティは単独では存在すべきではないので、問題は確認されます。 ページを ロック する場合、このプロパティは常に jcr:lockOwner と共同で設定する必要があります。

JCR API を使用しても、jcr:lockIsDeep プロパティのみを設定することはできません。そのため、この状況を説明する根本原因は、主にその単一のプロパティで 破損 コンテンツパッケージをインストールしたことにあります。

解決策

コンテンツを修正する唯一の解決策は、対応するノードに正しいプロパティが設定されているパッケージをオーサーにインストールすることです。

そのパッケージは、対応するコンテンツを持つ別のインスタンスから作成するか、影響を受けるインスタンスにこのコンテンツしかない場合は、次の手順に従います。

  1. 問題のあるページの壊れたインスタンスに対してパッケージを生成します
  2. パッケージをダウンロードします
  3. page/jcr:content の .content.xml を抽出します。
  4. jcr:lockIsDeep を使用して手動で行を削除する
  5. 新しい/固定の.content.xml でパッケージを更新します
  6. 変更したパッケージの再アップロードとインストール

ページのプロパティを再度確認し、レプリケーション/配布を正常にテストします。

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