获取用户 keycloak Not Found 异常

Ada*_*ski 5 keycloak keycloak-services

我无法像示例中那样获得用户组。示例来自:看看我们的测试套件。例如:

用户测试

小组测试

用于接收用户所属组的示例中的示例代码:

List<GroupRepresentation> membership = realm.users().get(user.getId()).groups();
Run Code Online (Sandbox Code Playgroud)

我的方法: 1.我在 myrealm 领域中为 admin-cli 客户端创建 keycloak 对象:

this.keycloak = KeycloakBuilder.builder()
            .serverUrl("http://localhost:18080/auth")
            .realm("myrealm")
            .username("admin")
            .password("admin")
            .clientId("admin-cli")
            .resteasyClient(new ResteasyClientBuilder().connectionPoolSize(10).build())
            .build();
Run Code Online (Sandbox Code Playgroud)
  1. 当我尝试获取用户时:

    //this line works
    final UserResource userr = this.keycloak.realms().realm("myrealm").users().get("admin");
    
    //this two doesnt, in both result is javax.ws.rs.NotFoundException: HTTP 404 Not Found
    final UserRepresentation ur = userr.toRepresentation();
    final List<GroupRepresentation> groups = this.getRealm().users().get(user.getId()).groups();
    
    Run Code Online (Sandbox Code Playgroud)

在 admin-cli 的 keycloak 中,我创建了包含 2 个用户和 2 个组的领域“myrealm”,每个用户都是两个组的成员。admin 是该用户之一,并且是这两个组的成员。

我创建的用户位于“myrealm”领域,“admin”就是其中之一。

我也尝试过提供来自客户和领域的所有可用角色,但这没有任何改变。

admin-cli 我的意思是本地主机上的 keycloak 应用程序

我缺少什么?

我正在使用的库:

import org.jboss.resteasy.client.jaxrs.ResteasyClientBuilder;
import org.keycloak.admin.client.Keycloak;
import org.keycloak.admin.client.KeycloakBuilder;
import org.keycloak.admin.client.resource.RealmResource;
import org.keycloak.admin.client.resource.UserResource;
import org.keycloak.admin.client.resource.UsersResource;
import org.keycloak.representations.idm.GroupRepresentation;
import org.keycloak.representations.idm.UserRepresentation;
Run Code Online (Sandbox Code Playgroud)

Dav*_*dky 7

我刚刚遇到了和你一样的问题。问题出在get方法上。它的参数不是用户名(admin),而是用户标识符。就像是494061c1-c8f3-44c9-8542-df895af81716

就我而言,我正确地尝试传递用户 ID,但我使用了令牌 ID,这是完全不同的东西。