【发布时间】:2013-06-28 15:40:08
【问题描述】:
我正在尝试使用 Apache Shiro 框架来保护我的 Web 应用程序(UI 基于 Vaadin 6)。浏览了 Shiro 网站上的所有示例,也搜索了几个小时,但我找不到处理以下要求的干净方法。
假设应用程序是一种项目管理工具,用户在其中创建活动,属于公司层次结构中的特定部门。每个用户可能在多个部门工作,并且在每个部门中具有不同的安全角色。示例:
部门 A - 用户在这里是“经理” B部 部门 C - 用户在这里是“管理员” D部用户是部门 A 的“经理” 用户是 C 部门的“管理员” 用户还应该继承 D 部门(C 部门的祖先)的“管理员”角色。
因此,基本权限检查(假设我想查看属于某个部门的活动)将是:
- 检查用户尝试查看的活动是否属于部门用户具有角色;
- 根据用户在该部门中的角色检查用户是否需要权限。
我目前对如何实施不仅是“系统范围的角色”,而且是“在这个特定部门中的角色”概念的理解很困难。
如何将上述示例转换为“activity:view:123”之类的权限字符串?以及如何检查我的业务逻辑中的权限?
还有一个疑问是 Shiro 的实现,我想使用一些开箱即用的解决方案,以尽量减少提供我自己的实现的努力。然而,Shiro 的内置实现似乎只为简单的情况而设计。是否有任何复杂授权实施的示例(可以涵盖上述情况)?
【问题讨论】:
标签: security vaadin shiro rbac