在Adobe Experience Manager LTS中使用RepoInit进行ACL排序
本文介绍了在Adobe Experience Manager (AEM) LTS版本中使用RepoInit更改ACL插入顺序时,如何导致自定义组“允许”权限被默认的“拒绝”规则覆盖,并提供了确保ACL顺序正确性的步骤。
描述 description
环境
- Adobe Experience Manager (AEM) 6.6.x (LTS SP2)
- Adobe Experience Manager (AEM) 6.5.x
问题/症状
使用Sling RepoInit创建自定义创作组和ACL时,AEM 6.5和AEM LTS (6.6.x)中的访问控制条目(ACE)顺序不同。 在AEM 6.5中,自定义ACE会附加到相同路径上的default/product个ACE之后。 在AEM LTS中,自定义ACL会插入到默认ACE之前。 例如,在诸如/content/projects之类的路径上,自定义组Allow条目可能显示在默认的Deny everyone条目之前。 由于所有用户都是everyone组的成员,因此拒绝条目可能会覆盖自定义组权限,从而影响这些组的删除和写入权限。 不会记录任何错误消息,但会影响有效权限。
原因
AEM LTS中RepoInit ACL插入顺序的更改会导致在默认Deny条目之前插入自定义Allow条目,从而导致Deny规则覆盖自定义权限。 通过RepoInit显式删除和重新添加ACL可确保正确顺序。
解决方法 resolution
要解决此问题,请执行以下步骤:
-
更新RepoInit配置以明确从受影响的路径中删除现有的自定义ACL,然后再重新添加它们。 例如:
code language-none set ACL for remove * on /content/projects allow jcr:lockManagement, jcr:read, jcr:versionManagement, jcr:write on /content/projects end
将<custom-group>替换为您的实际组名。
2. 通过标准部署管道部署更新的RepoInit配置。
3. 部署后,请验证ACL顺序是否按预期显示,以及自定义组权限是否有效。 您可以使用CRXDE或AEM安全控制台确认自定义允许条目显示在相关路径的默认拒绝条目之后。
4. 测试受影响组的删除和写入操作,确保权限正确。
5. 避免在CRXDE中对生产环境进行手动ACL重新排序,因为这不是可扩展的或受支持的长期解决方案。