散佈佇列因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 屬性。
為了確認診斷,您必須檢查 每個提及的路徑 ,並搭配以下任何您可存取/適用的工具:
- 適用於開發例項的CRX/DE
- 此 存放庫瀏覽器
- 在「封裝管理員」中建立內容封裝(此選項也是解決方案的一部分)
之後,您需要檢查 jcr:content
分發佇列UI中找到之每個路徑的節點,並驗證:
- It 會 具有
jcr:lockIsDeep
="(布林值)true" 屬性 - It 不會 具有
jcr:lockOwner="xxx"
屬性 - ( it 不會 具有
mix:lockable
中的值jcr:mixinTypes
)
如果是這種情況,則問題會得到確認,因為 jcr:lockIsDeep
屬性不應單獨存在。 此屬性應一律與 jcr:lockOwner
當 鎖定 頁面。
您不能只設定 jcr:lockIsDeep
即使使用JCR API,解釋此情況的根本原因也大多是因為安裝了「損毀」的內容套件具有該單一屬性。
解析度
若要修正您的內容,唯一的解決方案是在作者中安裝套件,該套件在對應節點上設定了正確的屬性。
您可以從具有對應內容的另一個執行個體建立該套件,或者如果您在受影響的執行個體上只有此內容,則您可以遵循這些指示:
- 在故障頁面的已中斷執行個體上產生套件
- 下載套件
- 擷取
.content.xml
針對page/jcr:content - 使用手動移除行 jcr:lockIsDeep
- 使用新的/固定的.content.xml更新您的套件
- 重新上傳並安裝修改後的套件
接著,您可以再次檢查頁面屬性,並成功測試復寫/散發。