Я пытаюсь изменить роли пользователя в keycloak с помощью keycloak-admin-client в приложении с весенней загрузкой, но я даже не могу создать экземпляр keycloak.
Я пытаюсь получить здесь сервер keycloak, но получаю InstantiationError
String serverUrl = "http://localhost:8080/auth";
String realm = "User-Service-Realm";
String clientId = "admin-cli";
Keycloak keycloak = Keycloak.getInstance(
serverUrl,
realm,
"admin",
"admin",
clientId);
Exception in thread "main" java.lang.InstantiationError: org.jboss.resteasy.client.jaxrs.ResteasyClientBuilder
at org.keycloak.admin.client.Keycloak.<init>(Keycloak.java:58)
at org.keycloak.admin.client.Keycloak.getInstance(Keycloak.java:106)
at de.uni.stuttgart.isw.ccm.userservice.api.KeycloakAdminClientExample.main(KeycloakAdminClientExample.java:31)
По-видимому, это проблема с самим admin-client, поскольку построитель keycloak основан на resteasyclientbuilder.
Похоже, у вас несовместимые библиотеки или версии библиотек. Сообщение об ошибке жалуется, что ResteasyClientBuilder
является абстрактным. В нашем рабочем проекте это не так.
Итак, в качестве справки, вот выдержка из нашего файла gradle, чтобы вы могли увидеть рабочую комбинацию версий библиотеки:
implementation 'org.keycloak:keycloak-admin-client:6.0.1'
implementation 'javax.ws.rs:javax.ws.rs-api:2.0'
implementation 'org.jboss.resteasy:resteasy-jaxrs:3.6.3.Final'
implementation 'org.jboss.resteasy:resteasy-client:3.6.3.Final'
implementation 'org.jboss.resteasy:resteasy-jackson2-provider:3.6.3.Final'
Обновлять:
ResteasyClientBuilder
стал абстрактным классом с версией 4.0 RESTEasy. Таким образом, похоже, что вы используете версию 4.x, а Keycloak ожидает версию 3.x.