散佈佇列因AccessDeniedException而遭到封鎖

說明 description

環境

  • Experience Manager
  • Experience Manager as a Cloud Service

問題/症狀
嘗試使用「快速發佈」、「管理發布」或「復寫」來復寫某些頁面內容(或XF和其他型別的資源)時,作者上的發佈佇列將獲得 已封鎖.

可透過檢查 發佈 ​來自發佈UI的發佈佇列(AEM — 工具 — 部署 — 發佈):


選取Golden Publisher佇列(從清單中選取粗體字的專案),會提供詳細資訊,尤其是相關資訊  路徑  (此處可能有多個元素):


檢視  記錄檔  標籤會顯示下列對應錯誤:
2023/03/08 12:11:26:238 - INFO — 已接受散發套件PackageMessage(pubSlingId=a1133c97-6809-411e-a435-4eea0ecbe889, reqType=ADD, pkgId=dstrpck-1678277486031-63159f4b-c577-4079-8741-d41660597d20, pkgType=journal_fileval ault, pkgLength=6330, pubAgentName=publish, userId=replication-service, paths=/content/wknd/fr, deepPaths=) at offset=158705 2023/03/08 12:11:27:459 - WARN — 訊息:匯入發佈套件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/wknd/fr, deepPaths=) at offset=158705,原因是「javax.jcr.AccessDeniedException: OakAccess000:Access被拒絕」,匯入程式將稍後重試,Stacktrace: org.apache.sling.distribuiling.distribution.common.DistributionException: javax.javax.jcr.jcr.AccessDenitionDenitionExceptionException: Access0 000:訪問被拒絕……

您需要 清除佇列 (或移除該專案)以解除封鎖佇列。

解決方法 resolution

儘管發生錯誤  javax.jcr.AccessDeniedException,則可能和發佈服務使用者的ACL /許可權沒有關係,但如果下列情況不適用於您的情況,則應考慮這一點。

診斷

在某些情況下,當復寫的內容確實有與特殊專案相關的特定設定時,可能會發生上述錯誤  jcr:lockIsDeep  屬性。

為了確認診斷,您必須檢查 每個提及的路徑  ,並搭配以下任何您可存取/適用的工具:

  1. 適用於開發例項的CRX/DE
  2. 存放庫瀏覽器
  3. 在「封裝管理員」中建立內容封裝(此選項也是解決方案的一部分)

之後,您需要檢查  jcr:content  分發佇列UI中找到之每個路徑的節點,並驗證:

  • It  具有  jcr:lockIsDeep="(布林值)true"  屬性
  • It 不會  具有  jcr:lockOwner="xxx"  屬性
  • ( it 不會 具有  mix:lockable  中的值  jcr:mixinTypes)

如果是這種情況,則問題會得到確認,因為  jcr:lockIsDeep  屬性不應單獨存在。 此屬性應一律與  jcr:lockOwner  當  鎖定  頁面。

您不能只設定 jcr:lockIsDeep  即使使用JCR API,解釋此情況的根本原因也大多是因為安裝了「損毀」的內容套件具有該單一屬性。

解析度

若要修正您的內容,唯一的解決方案是在作者中安裝套件,該套件在對應節點上設定了正確的屬性。

您可以從具有對應內容的另一個執行個體建立該套件,或者如果您在受影響的執行個體上只有此內容,則您可以遵循這些指示:

  1. 在故障頁面的已中斷執行個體上產生套件
  2. 下載套件
  3. 擷取  .content.xml  針對page/jcr:content
  4. 使用手動移除行  jcr:lockIsDeep
  5. 使用新的/固定的.content.xml更新您的套件
  6. 重新上傳並安裝修改後的套件

接著,您可以再次檢查頁面屬性,並成功測試復寫/散發。

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