我正在开发一个内容管理类型的 web 应用程序,它使用 spring security(版本 3.0.5)进行身份验证和标准 RBAC 来粗略地定义用户组。
该应用程序的功能之一是使具有某些角色(例如管理员)的用户能够配置个人用户(或个人用户组)访问特定内容项的权限,并控制他们可以执行的操作该内容(例如,读/写/删除,还包括导出、打印、共享、授予权限等)。这些管理员用户也将定义封装常用权限集的角色。所以看来我需要访问控制列表。
但是阅读 Spring ACL 文档,我有点不清楚最终用户在运行时对角色/用户的这种动态定义是否受支持;在我看来,Spring ACL 的主要“开箱即用”用例使用在应用程序本身中声明的静态定义。
如果可能的话,我想使用 Spring ACL - 看起来最有吸引力的好处是 a) 高性能的位掩码操作,b) 在我们的业务代码之外包装代理时保持权限查找,c) 标准技术;但是,如果为了适应我们的用例需要重新实现大多数 Spring 安全接口,那么我们可能只是自己动手。
所以我想问一下是否有人在这种用例中成功使用过Spring ACL?由于用户更改角色和权限,是否建议或不鼓励在运行时以编程方式动态修改 Spring ACL 表?
谢谢
理查德