如何在Keycloak Admin Client中启用/禁用用户

时间:2018-05-07 10:24:27

标签: keycloak

在我为Keycloak Admin Client找到的示例中,提到了UserRepresentation类中的一个名为“setEnabled”的方法来启用/禁用用户。

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

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

谢谢和最诚挚的问候,克里斯

3 个答案:

答案 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()

非常感谢您的评论!