首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Spring安全的非线性角色层次结构

使用Spring安全的非线性角色层次结构
EN

Stack Overflow用户
提问于 2018-07-27 18:52:22
回答 1查看 37关注 0票数 0

我试图用Security实现一个具有“非线性”角色层次结构的结构(Boot )。

为了更好地解释这一点,请设想以下情况:

角色:

  • 总统
  • 人力资源主任
  • 资讯科技总监
  • 助理
  • 技师

角色层次结构:

  • 人力资源主任>助理
  • 资讯科技总监>技术员

现在的问题是:

  • 总裁>人力资源总监

  • 总裁>资讯科技总监

注册角色层次结构时,请使用

代码语言:javascript
运行
复制
roleHierarchy.setRoleHierarchy("PRESIDENT>HUMAN_RESOURCES_DIRECTOR");
roleHierarchy.setRoleHierarchy("PRESIDENT>IT_DIRECTOR");

它只记录"PRESIDENT> IT_DIRECTOR“。

这可能是因为我可能有错误的Spring安全角色层次结构。

无论是什么情况,我如何应用它,使我的“总统”可以访问这两个角色的权限,而不添加大量的手动授权?

编辑:

为了澄清,我发现的所有示例都遵循线性层次结构,例如

总裁>资讯科技总监

资讯科技总监>技术员

编辑2:

在Security中,当以公开的方式实现这个非线性角色层次结构时,我得到了一条类似于:

代码语言:javascript
运行
复制
getReachableGrantedAuthorities() - From the roles [ROLE_PRESIDENT] one can reach [ROLE_PRESIDENT, ROLE_IT_DIRECTOR] in zero or more steps.
EN

回答 1

Stack Overflow用户

发布于 2018-07-30 15:27:46

问题在于对"setRoleHierarchy“方法的理解。

该方法设置角色层次结构,而不是添加它。

为了做想做的事情,需要“连接”层次结构,如下所示:

代码语言:javascript
运行
复制
String hierarchy = "ROLE_PRESIDENT > ROLE_IT_DIRECTOR "+"ROLE_PRESIDENT > ROLE_HUMAN_RESOURCES_DIRECTOR"; // Or write it straight up
roleHierarchy.setRoleHierarchy(hierarchy);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51563911

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档