배포 큐가 AccessDeniedException으로 차단됨
빠른 Publish, 게시 관리 또는 복제를 사용하여 페이지 콘텐츠, XF 또는 기타 리소스를 복제하려고 하면 작성자의 배포 큐가 차단됩니다. 배포 UI에서 게시 배포 큐(AEM > 도구 > 배포 > 배포)를 확인하여 이를 확인할 수 있습니다. 이 문서에 제공된 단계에 따라 문제를 해결합니다.
설명 description
환경
- Experience Manager
- Experience Manager as a cloud service
문제/증상
"빠른 Publish", "게시 관리" 또는 "복제"를 사용하여 일부 페이지 콘텐츠(또는 XF 및 기타 리소스)를 복제하려고 하면 작성자의 배포 큐가 차단됨됩니다.
배포 UI에서 게시배포 큐(AEM - 도구 - 배포 - 배포)를 확인하여 이를 확인할 수 있습니다.
Golden Publisher 큐(목록에서 굵은 글씨로 입력)를 선택하면 자세한 정보가 제공되며, 특히 관련된 PATH(여기에 여러 요소가 있을 수 있음):
로그 탭을 보면 다음과 같은 해당 오류가 표시됩니다.
2023/03/08 12:11:26:238 - INFO - 배포 패키지 PackageMessage(pubSlingId=a1133c97-6809-411e-a435-4eea0ecbe889, reqType=ADD Id=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
2023/03/08 12:11:27:459 - 경고 - 메시지: 배포 패키지 PackageMessage(pubSlingId=a1133c97-6809-411e-a435-4eea0ecbe89, reqType=ADD, pkgId=dstrpck-1678277486031-63159f4b-c577-4079-8741-d41660597d20, pkgType=journal_levault, offset=158705의 length=6330, pubAgentName=publish, userId=replication-service, paths=[ /content/wknd/fr] , deepPaths=[ ] ) 원인 'javax.jcr.AccessDeniedException: OakAccess0000: Access denied', Importer는 나중에 다시 시도합니다.
Stacktrace: org.apache.sling.distribution.common.DistributionException: javax.jcr.AccessDeniedException: OakAccess0000: 액세스 거부됨[ …]
큐의 차단을 해제하려면 큐를 지워야(또는 해당 항목 제거)합니다.
해결 방법 resolution
javax.jcr.AccessDeniedException인 오류에도 불구하고 배포 서비스 사용자에 대한 ACL/권한과 관계가 없을 수 있지만 다음 시나리오가 사용자의 경우 적용되지 않는 경우 이를 고려해야 합니다.
진단
복제된 콘텐츠에 특수 jcr:lockIsDeep 속성과 관련된 특정 구성이 있는 경우 위 오류가 발생할 수 있습니다.
진단을 확인하려면 액세스할 수 있거나 적용할 수 있는 다음 도구를 사용하여 언급된 각 경로를 검사해야 합니다.
- 개발 인스턴스용 CRX/DE
- 저장소 브라우저
- 패키지 관리자에서 컨텐츠 패키지 만들기(이 옵션은 해상도의 일부이기도 합니다)
그런 다음 배포 큐 UI에 있는 각 경로에 대해 jcr:content 노드를 확인하고 다음을 확인해야 합니다.
- 이(가) 에
jcr:lockIsDeep="(부울)true" 속성이 있습니다. - 에 에
jcr:lockOwner="xxx"속성이 없습니다. - (it does은(는)
jcr:mixinTypes에mix:lockable값이 있음)
이 경우 jcr:lockIsDeep 속성만 있으면 안 되므로 문제가 확인됩니다. 이 속성은 페이지를 잠금할 때 항상 jcr:lockOwner과(와) 함께 설정해야 합니다.
JCR API를 사용하더라도 jcr:lockIsDeep 속성만 설정할 수는 없으므로 이 상황을 설명하는 근본 원인은 대부분 해당 단일 속성으로 손상 콘텐츠 패키지를 설치한 것입니다.
해상도
콘텐츠를 수정하려면 해당 노드에 대한 올바른 속성이 설정된 패키지를 작성자에 설치하는 것이 유일한 해결책입니다.
해당 콘텐츠가 있는 다른 인스턴스에서 해당 패키지를 생성하거나 영향을 받는 인스턴스에만 이 콘텐츠가 있는 경우 다음 지침을 따를 수 있습니다.
- 잘못된 페이지에 대해 끊어진 인스턴스에 패키지 생성
- 패키지 다운로드
- 페이지/jcr:content에 대한
.content.xml추출 - jcr:lockIsDeep이(가) 있는 줄을 수동으로 제거하십시오.
- 새/고정 .content.xml로 패키지 업데이트
- 수정된 패키지를 다시 업로드하고 설치합니다.
페이지 속성을 다시 확인하고 복제/배포를 성공적으로 테스트합니다.