加入 Keycloak java 管理客户端
Joins with Keycloak java admin client
我正在尝试了解 Keycloak 的管理客户端 api,尤其是在连接方面。
有一个 post 解决了按角色获取用户的类似需求。
我们如何使用管理客户端执行此操作?
因为现在我正在检索所有用户并检查角色是否匹配:
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。我想较新的版本支持这个。
提前致谢。
使用最新的管理客户端,您可以轻松获得
RoleResource roleResource = keycloak.realm("realm_name").roles().get("role_name");
Set<UserRepresentation> users = roleResource.getRoleUserMembers();
我正在尝试了解 Keycloak 的管理客户端 api,尤其是在连接方面。
有一个 post 解决了按角色获取用户的类似需求。
我们如何使用管理客户端执行此操作?
因为现在我正在检索所有用户并检查角色是否匹配:
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。我想较新的版本支持这个。
提前致谢。
使用最新的管理客户端,您可以轻松获得
RoleResource roleResource = keycloak.realm("realm_name").roles().get("role_name");
Set<UserRepresentation> users = roleResource.getRoleUserMembers();