在我为Keycloak Admin Client找到的示例中,提到了UserRepresentation类中的一个名为“setEnabled”的方法来启用/禁用用户。
不幸的是,这个方法似乎在最新版本中被删除了,因为该方法也不再列在JavaDocs中。
所以,我的问题是:如何在最新版本的Keycloak Admin Client(3.4.3.Final)中启用/禁用用户?
谢谢和最诚挚的问候,克里斯
答案 0 :(得分:1)
显然可以使用API:
curl -v -X PUT -H "Content-Type: application/json" -H "Authorization: Bearer $token" --data "{\"enabled\": false}" "http://localhost:8080/auth/admin/realms/[my-realm]/users/[user-id]"
答案 1 :(得分:1)
在Keycloak-admin-clinet版本4.8.3.Final上工作
// connect to keycloak server
Keycloak keycloak = KeycloakBuilder.builder()
.serverUrl(AUTHURL)
.realm(REALM)
.grantType(OAuth2Constants.PASSWORD) // "password"
.clientId(CLIENTID)
.clientSecret(SECRETKEY)
.username(ADMIN_USERNAME)
.password(ADMIN_PASSWORD)
.build();
// get user resource
RealmResource realmResource = keycloak.realm(REALM);
UsersResource userRessource = realmResource.users();
// fetch an existing user
UserRepresentation user = userRessource.get(userId).toRepresentation();
// change user
user.setEnabled(true);
// update
userRessource.get(userId).update(user);
答案 2 :(得分:0)
找到了解决方案:问题是存在带有UserRepresentation类的不同Java包,而我导入了错误的Java包。正确的是
org.keycloak.representations.idm.UserRepresentation
,其中还包括函数setEnabled()
。
非常感谢您的评论!