我正在尝试使用Spring Boot应用程序中的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)
显然,这是管理客户端本身的问题,因为密钥生成器基于resteasyclientbuilder。
答案 0 :(得分:0)
您似乎具有不兼容的库或库版本。错误消息抱怨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
已成为 RESTEasy 版本4.0的抽象类。因此,看起来好像您使用的是4.x版本,而Keycloak希望使用的是3.x。