如何在 Keycloak 管理客户端中 enable/disable 用户

How to enable/disable user in Keycloak Admin Client

在我为 Keycloak Admin Client 找到的示例中,enable/disable 用户提到了 UserRepresentation class 中称为 "setEnabled" 的方法。

不幸的是,这个方法似乎在最新版本中被删除了,因为该方法也不再列在 JavaDocs 中。

所以,我的问题是:如何在最新版本的 Keycloak Admin Client (3.4.3.Final) 中 enable/disable 一个用户?

谢谢并致以最诚挚的问候,克里斯

显然可以使用 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]"

找到解决方案:问题是存在具有 UserRepresentation class 的不同 Java 包,而我导入了错误的包。正确的是 org.keycloak.representations.idm.UserRepresentation 这还包括一个函数 setEnabled().

非常感谢您的评论!

适用于 Keycloak-admin-client 版本 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);