Keycloak Admin Java Adapter 401尽管所有角色都未授权



我正在使用Keycloak api,但我有以下问题:在"master"我有一个名为"foo"(以客户端名称"foo-real "显示)

master> foo-realm (foo)

在"foo"我有一个名为"客户"的客户。

在"master"我有一个用户名为"client-admin"。

我希望能够使用api查询和更新用户信息在"client"使用"client-admin">

"client-admin"拥有"foo-real"的所有角色。(查询-用户、管理-领域等),并出现在"用户角色"中。

但是我不能使它与api工作:

KeycloakBuilder.builder()
.serverUrl("serverUrl")
.realm("master")
.grantType(OAuth2Constants.PASSWORD)
.clientId("foo-realm")
.username("client-admin")
.password("client-admin-password").build().realm("foo").users().list()

我得到javax.ws.rs.NotAuthorizedException: HTTP 401 Unauthorized从这个.

api正在工作,就像我们用来查询"client"与用户直接创建到"foo"(参见下面的片段)。但是我们在密码更新策略上遇到了问题,所以现在我们希望用户处于"master"状态。我想我没有把角色的归属做对,但是我不明白是哪里错了。

KeycloakBuilder.builder()
.serverUrl("serverUrl")
.realm("foo")
.grantType(OAuth2Constants.PASSWORD)
.clientId("client-id")
.clientSecret("client")
.username("admin-in-foo")
.password("admin-in-foo-password").build().realm("foo").users().list()

我也试过这个,但我仍然得到一个401未经授权

KeycloakBuilder.builder()
.serverUrl("serverUrl")
.realm("foo")
.grantType(OAuth2Constants.PASSWORD)
.clientId("client")
.clientSecret("client-secret")            
.username("client-admin")
.password("client-admin-password").build().realm("foo").users().list()

欢迎任何帮助。谢谢你的阅读。

好了,我找到答案了。我必须查询"admin-cli"。客户端变成"主人";如下所示:

KeycloakBuilder.builder()
.serverUrl("serverUrl")
.realm("master")
.grantType(OAuth2Constants.PASSWORD)
.clientId("admin-cli")
.username("client-admin")
.password("client-admin-password").build().realm("foo").users().list()

最新更新