在新的keycloak用户帐户

时间:2017-07-26 13:09:17

标签: keycloak

我正在使用客户端创建一个新的keycloak用户。像这样:

keycloak.realm(realm)
        .users()
        .create(user);

用户变量是UserRepresentation对象,我尝试添加Update Password所需操作:

user.setRequiredActions(singletonList("Update Password"))

用户创建正常,问题是我没有设置所需的操作

enter image description here

如果我在所需的操作列表中指定了不同的值,我不确定我做错了什么?

由于

3 个答案:

答案 0 :(得分:5)

弄明白了什么。

Keycloak有一个枚举来表示各种用户操作:

public static enum RequiredAction {
    VERIFY_EMAIL, UPDATE_PROFILE, CONFIGURE_TOTP, UPDATE_PASSWORD, TERMS_AND_CONDITIONS
}

因此,该值应为"UPDATE_PASSWORD"而不是"Update password"

答案 1 :(得分:1)

现在可以在Keycloak 8.x中使用

UserResource.toRepresentation().setRequiredActions(...);

在更改登录名后手动触发“验证电子邮件”之类的操作。

答案 2 :(得分:1)

要找出所有可能需要的操作别名,请从管理界面将目标领域导出为json。在json中,您会找到“ requiredActions”数组,其中列出了所有合法行为,如下所示:

 "requiredActions": [
    {
      "alias": "CONFIGURE_TOTP",
      "name": "Configure OTP",
      "providerId": "CONFIGURE_TOTP",
      "enabled": true,
      "defaultAction": false,
      "priority": 10,
      "config": {}
    },
    {
      "alias": "terms_and_conditions",
      "name": "Terms and Conditions",
      "providerId": "terms_and_conditions",
      "enabled": false,
      "defaultAction": false,
      "priority": 20,
      "config": {}
    },

在代码中设置所需动作列表时,只需使用“ alias”标签下的字符串即可。