当前位置: 首页 > 知识库问答 >
问题:

Spring Boot Key斗篷-如何获得分配给用户的角色列表?

师野
2023-03-14

我正试图从一个用KeyClope保护的Spring Boot应用程序中获取分配给特定用户的角色列表。

我已经在keydepowebsecurityConfigureAdapter配置类中声明了一个AccessTokenbean,如下所示:

    @Configuration
    @EnableWebSecurity
    @ComponentScan(basePackageClasses = KeycloakSecurityComponents.class)
    public class KeycloakSecurityConfig extends KeycloakWebSecurityConfigurerAdapter {

//other config code

        @Bean
        @Scope(scopeName = WebApplicationContext.SCOPE_REQUEST, proxyMode = ScopedProxyMode.TARGET_CLASS)
        public AccessToken accessToken() {
            HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()).getRequest();
            return ((KeycloakSecurityContext) ((KeycloakAuthenticationToken) request.getUserPrincipal()).getCredentials()).getToken();
        }

    }

现在我可以在控制器中自动连接AccessToken,我可以获得ID和用户名等信息,但如何使用AccessToken获得分配给用户的角色列表?

共有1个答案

萧永望
2023-03-14

用于资源角色映射

AccessToken.Access access = accessToken.getResourceAccess(clientId);
     Set<String> roles = access.getRoles();

对于领域角色映射,请使用

AccessToken.Access access = accessToken.getRealmAccess();
 Set<String> roles = access.getRoles();
 类似资料:
  • 使用密钥斗篷创建组并为组分配角色。然后创建用户并将用户分配到特定的组。 要在我的应用程序中访问所有这些,我使用Python Keycoat 如github文档中所述,使用以下代码访问用户信息。 正在获取以下用户信息 如何访问用户的组和角色信息。

  • 我想通过postman中的api将角色添加到特定客户端密钥斗篷中的用户,但我得到了“错误”:“client not Found”这个URL:post-http://localhost:8080/auth/admin/realms/{realmName}/users/{userId}/role-mappings/clients/{clientId} 本机构:

  • 我正在运行KeyCloak,并且我已经使用OIDC集成了Azure AD身份提供程序。 当我尝试获取我创建的自定义领域的令牌时,只有在提供在 KeyCloak 中创建的用户名和密码时,我才能获取令牌。如果我使用 ADFS uid/pwd,我会得到以下响应。 我提出的开机自检请求如下: https:// 我正在请求标头中传递以下信息 谢谢Sateesh

  • 您可在添加员工是分配角色,具体请详见【如何导入员工】 除此之外,您可在【角色】页面通过“管理成员”进行角色分配。(主管,初始管理员除外) 分配角色 点击角色右侧“管理成员”按钮(主管、初始超管除外) 您可在此添加或移除角色成员。 设置主管 您可在部门或项目模块进行主管设置,具体请详见【通过部门、项目管理员工】 设置初始管理员 初始管理员为默认角色,为企业唯一,若需修改,请详见【如何移交初始管理员】

  • 我搜索了以下内容:,但没有找到任何内容。 JDA版本:

  • 我在这里试图实现的是避免将keycloak用户数据库复制到另一个本地数据库,但似乎不可能访问任何其他用户信息,除了当前会话中的一个...