【发布时间】:2012-05-02 22:34:23
【问题描述】:
我有一个在这里或 Jackrabbit 文档中找不到答案的问题,希望大家能提供帮助。
我正在做以下事情:
- 管理员创建“someuser”
admin 创建以上节点: /模板/模板全部[ jcr:uuid: a9b629a4-d1dd-4ba3-a602-629e4ca1a7fd jcr:mixinTypes: mix:referenceable, rep:AccessControllable, 标签: 模板 jcr:primaryType:nt:非结构化 /模板/模板全部/代表:政策[ jcr:primaryType: 代表:ACL /模板/模板全部/代表:政策/允许[ 代表:特权:jcr:全部, 代表:principalName:someuser jcr:primaryType: rep:GrantACE
someuser 尝试删除 /templates/templateall 节点,但 save() 出现以下异常
javax.jcr.AccessDeniedException: /templates/templateall: not allowed to remove item 在 org.apache.jackrabbit.core.ItemSaveOperation.validateTransientItems(ItemSaveOperation.java:704) 在 org.apache.jackrabbit.core.ItemSaveOperation.perform(ItemSaveOperation.java:216) 在 org.apache.jackrabbit.core.session.SessionState.perform(SessionState.java:216) 在 org.apache.jackrabbit.core.ItemImpl.perform(ItemImpl.java:91) 在 org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:329) 在 org.apache.jackrabbit.core.session.SessionSaveOperation.perform(SessionSaveOperation.java:64) 在 org.apache.jackrabbit.core.session.SessionState.perform(SessionState.java:216) 在 org.apache.jackrabbit.core.SessionImpl.perform(SessionImpl.java:361) 在 org.apache.jackrabbit.core.SessionImpl.save(SessionImpl.java:812)
- 之后,我尝试使用管理员用户删除/templates/templateall,删除成功。
- 然后我尝试做同样的事情,但我让用户“someuser”jcr:all 访问节点 /templates 而不是 /templates/templateall,然后“someuser”能够成功删除 /templates/templateall
所以我对第一个结构示例的结论是:“someuser”可以删除节点 /templates/templateall 的任何子节点,但不能删除节点本身,需要提供 jcr:removeChildNodes 访问 no /templates 才能做到这一点。
我的结论正确吗?
谢谢!!
【问题讨论】:
标签: jackrabbit