加入Keycloak java admin客户端

问题描述 投票:0回答:1

我试图了解Keycloak的admin客户端api,特别是在连接时。

这篇文章解决了为每个角色获取用户的类似需求。

Keycloak - Get all Users mapped to roles

我们如何使用管理客户端执行此操作?

因为现在我正在检索所有用户并检查角色是否匹配:

List<UserRepresentation> userRepresentations = keycloak.realm(realm).users().search("", 0, 1000); //get all users :(
        for (UserRepresentation userRepresentation : userRepresentations ) {
            List<String> userRoles = userRepresentation.getRealmRoles();

            if(userRoles != null && !Collections.disjoint(userRoles, roles)){
                result.add(KeycloakUserTransformer.userRepresentationToSimpleUserDTO(userRepresentation));
            }
        }

事实是,userRoles列表总是空的:S。但实际上,我们在keycloak用户中拥有约2500名用户。

编辑:我正在使用keycloak管理客户端v.2.0。我想新版本支持这一点。

提前致谢。

keycloak keycloak-services
1个回答
1
投票

使用最新的管理客户端,您可轻松获得

RoleResource roleResource = keycloak.realm("realm_name").roles().get("role_name");  
    Set<UserRepresentation> users = roleResource.getRoleUserMembers();
© www.soinside.com 2019 - 2024. All rights reserved.