如何使用管理客户端访问密钥斗篷?

时间:2019-07-19 08:44:35

标签: spring-boot keycloak

我正在尝试使用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。

1 个答案:

答案 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。