Как добавить роли пользователя keyCloak по userName вместо userId - PullRequest
1 голос
/ 27 мая 2020

Ниже приведен код для добавления роли пользователю keyCloak.

// Get realm
RealmResource realmResource = keycloak.realm(realm);
UsersResource usersResource = realmResource.users();

UserResource userResource = usersResource.get("03e7c515d-95e6-4b05-8f24-bd51515536");

RoleRepresentation demoRealmRole = realmResource.roles()
        .get("role1").toRepresentation();

// Assign realm-role role1 to user
userResource.roles().realmLevel().add(Arrays.asList(demoRealmRole));

Мне нужно назначить роль, отправив userName вместо userId (строка 4). Как мне этого добиться?

1 Ответ

2 голосов
/ 27 мая 2020

Keycloak Admin API, похоже, не позволяет получить пользователя по имени пользователя. Так что, наверное, это единственное решение:

List<UserRepresentation> usersStartWithUser1 = usersResource.search("user1");
for (UserRepresentation user: usersStartWithUser1) {
    if("user1".equals(user.getUsername())){
        UserResource userResource = usersResource.get(user.getId());
        RoleRepresentation demoRealmRole = realmResource.roles()
                .get("role1").toRepresentation();
        // Assign realm-role role1 to user
        userResource.roles().realmLevel().add(Arrays.asList(demoRealmRole));
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...