我正在使用客户端创建一个新的keycloak用户。像这样:
keycloak.realm(realm)
.users()
.create(user);
用户变量是UserRepresentation
对象,我尝试添加Update Password
所需操作:
user.setRequiredActions(singletonList("Update Password"))
用户创建正常,问题是我没有设置所需的操作
如果我在所需的操作列表中指定了不同的值,我不确定我做错了什么?
由于
答案 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”标签下的字符串即可。