获取用户keycloak Not Found异常

时间:2017-01-11 14:31:11

标签: keycloak keycloak-services

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

UserTest

GroupTest

接收组用户示例中的示例代码是以下成员:

List<GroupRepresentation> membership = realm.users().get(user.getId()).groups();

我的方法: 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();
  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();
    
  2. 在admin-cli的keycloak中,我创建了2个用户和2个组的领域“myrealm” 每个用户都是两个组的成员。 admin是这个用户之一,是这两个组的成员。

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

    我还试图从客户和领域提供所有可用的角色,但这没有任何改变。

    admin-cli我的意思是localhost上的keycloak app

    我缺少什么?

    我正在使用的Libs:

    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;
    

1 个答案:

答案 0 :(得分:1)

我偶然发现了和你一样的问题。问题在于&#34; get&#34;方法。它的参数不是用户名(admin),而是用户标识符。像&#34; 494061c1-c8f3-44c9-8542-df895af81716&#34; 。

在我的情况下,我正确地尝试传递用户ID,但我使用了令牌ID,这是完全不同的东西。