【发布时间】:2018-07-30 23:27:46
【问题描述】:
我正在尝试使用 Spring Security (Boot Starter) 实现具有“非线性”角色层次结构的结构。
为了更好地解释它,想象以下情况:
角色:
- 总裁
- 人力资源总监
- IT 总监
- 助理
- 技术员
角色层次结构:
- 人力资源总监 > 助理
- IT 总监 > 技术员
现在的问题:
- 总裁 > 人力资源总监
与
- 总裁 > IT 总监
当我使用
注册角色层次结构时roleHierarchy.setRoleHierarchy("PRESIDENT>HUMAN_RESOURCES_DIRECTOR");
roleHierarchy.setRoleHierarchy("PRESIDENT>IT_DIRECTOR");
它只记录“PRESIDENT> IT_DIRECTOR”。
这可能是因为我可能误解了 Spring Security Role Hierarchy。
无论如何,我如何应用它,以便我的“总统”可以访问这两个角色权限而无需添加大量的手动授权?
编辑:
澄清一下,我发现的所有示例都遵循线性层次结构,例如
总裁 > IT 总监
IT 总监 > 技术员
编辑 2:
在 Spring Security Debug 中,当以公开的方式实现这种非线性角色层次结构时,我收到类似于以下内容的消息:
getReachableGrantedAuthorities() - From the roles [ROLE_PRESIDENT] one can reach [ROLE_PRESIDENT, ROLE_IT_DIRECTOR] in zero or more steps.
【问题讨论】: