#java #spring-boot #keycloak #keycloak-rest-api
#java #весенняя загрузка #keycloak #keycloak-rest-api
Вопрос:
У меня снова возникли проблемы с созданием пользователей через restapi в моей службе keycloak. Он создает пользователя, но впоследствии не присваивает ему правильную роль.
Выяснил, что код не работает в следующей части
private void assignRoleToUser(String userId, String role){
Keycloak keycloak = getAdminKeycloak();
UsersResource usersResource = keycloak.realm(realm).users();
UserResource userResource = usersResource.get(userId);
ClientResource clientResource =keycloak.realm(realm).clients().get(clientId);
RoleRepresentation clientRole = clientResource.roles().get(role).toRepresentation(); //<-- here
userResource.roles().clientLevel(clientId).add(Collections.singletonList(clientRole));
}
Он возвращает мне ошибку HTTP 404. Копая глубже, похоже, что .roles()
метод завершается сбоем. Пользователь создается в моем keycloak, только моя роль не назначена. .roles()
:
@Path("/roles")
RolesResource roles();
Есть идеи, как это исправить? К настоящему времени я разочарован.
Ответ №1:
Похоже, меня смутил запутанный дизайн api keycloak. Исправлено и выложена суть github:
https://gist.github.com/rosariop/0a689fe221760a3ce9cda77af0255f00