5

サンプルのようにユーザー グループを取得できません。サンプル: テストスイートをご覧ください。例えば:

ユーザーテスト

グループテスト

ユーザーがメンバーであるグループを受信する例のサンプル コード:

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();
    

admin-cli のキークロークで、2 人のユーザーと 2 つのグループを持つレルム「myrealm」を作成しました。すべてのユーザーは両方のグループのメンバーです。admin はこのユーザーの 1 人であり、この 2 つのグループのメンバーです。

私が作成したユーザーは「myrealm」レルムにあり、「admin」はその 1 つです。

私はまた、クライアントとレルムから利用可能なすべての役割を与えようとしましたが、これは何も変わりません。

admin-cli localhost のキークローク アプリを意味していました

私は何が欠けていますか?

私が使用しているライブラリ:

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;
4

1 に答える 1