Ошибка при создании пользователей: / roles endpoint Keycloak HTTP 404

#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