我正在尝试使用Apache Shiro框架来保护我的Web应用程序(UI基于Vaadin 6)。通过Shiro网站上的所有示例,并搜索了几个小时,但我无法找到一个干净的方式来处理以下要求。如何使用Apache Shiro处理分层角色/权限?
假设应用程序是一种项目管理工具,用户正在创建活动,属于公司层次结构中的特定部门。每个用户可以在多个部门工作,并且在每个部门中具有不同的安全角色。例如:
Department A - User is 'Manager' here Department B Department C - User is 'Admin' here Department D
用户是在部门A “用户管理器”是在部ç 用户“管理”也应该继承“管理”为部d(这是系的C祖先)的作用。
所以,基本的权限检查(假设我要查看属于一些部门的活动)将是:
- 检查活动用户试图查看所属部门用户有一定作用;
- 检查用户是否需要基于他的角色在此部门的许可。
我目前停留在理解如何实施不仅仅是“系统广角”,而是“在这个特定部门的作用”的概念。
如何将上面的示例转换为像“activity:view:123”这样的权限字符串?我将如何检查业务逻辑中的权限?
另一个疑问是Shiro的实现,我想使用一些开箱即用的解决方案将最小的努力提供我自己的实现。但是,Shiro的内置实现似乎只适用于简单情况。是否有任何复杂的授权实施示例(可以涵盖上述情况)?