如何使用管理客户端访问密钥斗篷?
How to access keycloak with the admin-client?
我试图在 spring 引导应用程序中使用 keycloak-admin-client 更改 keycloak 中用户的角色,但我什至无法实例化 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)
显然这是管理客户端本身的问题,因为 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
在 RESTEasy 的 4.0 版中成为抽象 class。所以看起来你正在使用版本 4.x,而 Keycloak 期望 3.x.
我试图在 spring 引导应用程序中使用 keycloak-admin-client 更改 keycloak 中用户的角色,但我什至无法实例化 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)
显然这是管理客户端本身的问题,因为 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
在 RESTEasy 的 4.0 版中成为抽象 class。所以看起来你正在使用版本 4.x,而 Keycloak 期望 3.x.