获取用户密钥罩未找到异常 [英] Getting user keycloak Not Found exception

查看:19
本文介绍了获取用户密钥罩未找到异常的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我无法获得示例中那样的用户组。 样品来源: 请看一下我们的测试套件。例如:

UserTest

GroupTest

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

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

我的方法: 1.我在myRealm中为admin-cli客户端创建了keyloak对象:

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();
    
在admin-cli的密钥罩中,我创建了具有2个用户和2个组的领域"mydomain 每个用户都是这两个组的成员。Admin是此用户之一,并且是这两个组的成员。

我创建的用户在"myreal域"领域,"admin"是其中之一。

我已尝试为来自客户端和领域的所有可用角色分配角色,但这不会改变任何内容。

admin-cli我的意思是本地主机上的密钥罩应用

我错过了什么?

我正在使用的库:

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;

推荐答案

我刚刚遇到了与您相同的问题。问题出在get方法上。其参数不是用户名(admin),而是用户标识符。类似于494061c1-c8f3-44c9-8542-df895af81716

在我的示例中,我正确地尝试传递用户ID,但我使用的是令牌ID,这完全是另一回事。

这篇关于获取用户密钥罩未找到异常的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆