我使用 Keycloak 11,在用户注册过程中,我想触发一封电子邮件,要求用户设置密码。我已经用 restTemplate 和 keycloak 6 实现了它,它工作得很好。现在我使用推荐的 webClient。
@Override
public void triggerRequiredActionUpdatePassword(String userId) {
String url = applicationConstants.getKeykloakUsersUri()+ "/" + userId + "/execute-actions-email";
String[] actions = new String[]{"UPDATE_PASSWORD"};
webClient.put()
.uri(url)
.contentType(MediaType.APPLICATION_JSON)
.body(BodyInserters.fromValue(actions))
.exchange()
.block();
}
这不会导致错误,但未设置所需的操作。在注册期间,我还通过单独的请求设置了领域角色,它工作正常。
有谁知道为什么请求没有引发错误但未设置操作?
我已在用户所需的操作中将 admin-client 设置为 realm-admin。
我还不能使用我的 smtp 服务器,所以没有在 keycloak 中注册,但我希望至少该字段已设置。还是仅在注册 smtp 时才可用?
此外:
我对客户也有一个非常奇怪的行为。当我使用 webClient.exchange 设置领域角色时,它工作正常。当我使用 .retrieve() 时,未设置领域角色。我尝试了两种解决方案来执行所需的操作,但没有任何改变。