我有一个配置和工作的角色层次结构:
<beans:bean id="roleHierarchy"
class="org.springframework.security.access.hierarchicalroles.RoleHierarchyImpl">
<beans:property name="hierarchy">
<beans:value>
ROLE_ADMIN > ROLE_PRIVILEGED
ROLE_PRIVILEGED > ROLE_USER
ROLE_USER > ROLE_ANONYMOUS
</beans:value>
</beans:property>
</beans:bean>
Run Code Online (Sandbox Code Playgroud)
对于用户角色设置,我需要访问我定义的角色。我怎样才能实现它?可能与roleHierarchy.getReachableGrantedAuthorities但我不知道,给它什么作为参数。提前致谢。
小智 5
据我了解,您希望从给定的授予权限中获取所有可访问的授予权限。如果是这种情况,以下是解决方法:
首先RoleHierarchyImpl从 Spring获取实例ApplicationContext
ApplicationContext context = new FileSystemXmlApplicationContext(
"--path--");
BeanFactory factory = context;
RoleHierarchyImpl roleHierarchy = (RoleHierarchyImpl) factory.getBean("roleHierarchy");`
Run Code Online (Sandbox Code Playgroud)或创建一个新实例并加载层次结构,如下所示;
RoleHierarchyImpl roleHierarchy = new RoleHierarchyImpl();
roleHierarchy.setHierarchy(properties.getProperty("security.roleHierarchy"));
Run Code Online (Sandbox Code Playgroud)
现在您可以使用roleHierarchy.getReachableGrantedAuthorities和AuthorityUtils获取所有可访问的授予权限:
Collection<GrantedAuthority> ga = roleHierarchy.getReachableGrantedAuthorities(AuthorityUtils.createAuthorityList(new String[]{"ROLE_ADMIN"}));
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
1734 次 |
| 最近记录: |