我正在实施基于Web的文档管理系统,我想在我的系统中实现ACL。 我的正式要求是分层权限(文档从其文件夹继承权限)用户组(用户可以动态创建组并将用户与组关联)。这些组可以拥有系统中对象的权限。
我的代码将在两种情况下查询对象的权限: 1.操作单个文档 2.列出可以进行操作的所有文档
后一个要求似乎是Spring Security ACL的致命弱点(他们的方法似乎可能会为我管理的每个文档产生多个数据库命中)
任何人都知道另一个ACL实现?
谢谢!
答案 0 :(得分:2)
我不熟悉Spring Security的ACL,但我相信您需要使用典型的ACL来命中每个节点以发现给定的主体是否对该节点具有权限。我不知道你是否会在每次在你呈现的节点上进行canRead()或canAccess()调用(或类似的东西)时找到解决问题的方法。
暂且不说: 您是否使用符合JSR-170标准的内容(Java内容存储库或'JCR')进行评估,而不是滚动您自己的完整文档管理系统实现?潜在地,您可以使用JCR中的东西作为后端,并简单地在其上面编写Web界面。 Jackrabbit有一个默认的ACL实现,应该足够了。