我试图用Security实现一个具有“非线性”角色层次结构的结构(Boot )。
为了更好地解释这一点,请设想以下情况:
角色:
角色层次结构:
现在的问题是:
和
注册角色层次结构时,请使用
roleHierarchy.setRoleHierarchy("PRESIDENT>HUMAN_RESOURCES_DIRECTOR");
roleHierarchy.setRoleHierarchy("PRESIDENT>IT_DIRECTOR");
它只记录"PRESIDENT> IT_DIRECTOR“。
这可能是因为我可能有错误的Spring安全角色层次结构。
无论是什么情况,我如何应用它,使我的“总统”可以访问这两个角色的权限,而不添加大量的手动授权?
编辑:
为了澄清,我发现的所有示例都遵循线性层次结构,例如
总裁>资讯科技总监
资讯科技总监>技术员
编辑2:
在Security中,当以公开的方式实现这个非线性角色层次结构时,我得到了一条类似于:
getReachableGrantedAuthorities() - From the roles [ROLE_PRESIDENT] one can reach [ROLE_PRESIDENT, ROLE_IT_DIRECTOR] in zero or more steps.
发布于 2018-07-30 15:27:46
问题在于对"setRoleHierarchy“方法的理解。
该方法设置角色层次结构,而不是添加它。
为了做想做的事情,需要“连接”层次结构,如下所示:
String hierarchy = "ROLE_PRESIDENT > ROLE_IT_DIRECTOR "+"ROLE_PRESIDENT > ROLE_HUMAN_RESOURCES_DIRECTOR"; // Or write it straight up
roleHierarchy.setRoleHierarchy(hierarchy);
https://stackoverflow.com/questions/51563911
复制相似问题