我正在尝试在spring启动项目中创建带有key斗篷的/users端点的用户。以下是我首先在主领域和admincli客户机中创建admin的步骤。用于获取keydrope的示例以进行进一步的操作。
return Keycloak.getInstance(
keycloakProperties.getAuthServerUrl(),
"master",
adminConfig.getUserName(),
adminConfig.getPassword(),
"admin-cli");
如果不在user中添加客户机表示,我就可以创建用户。如果我在userrepresentation对象中添加credentialrepresentation,我将得到没有任何细节的badrequest错误(400代码)。我查了keydepot服务器的日志,这些日志也没有什么帮助。作为一种尝试,我先创建用户,然后重置密码,然后还创建了用户,但无法使用重置密码端点设置密码(相同错误)。如文档中所述,我已将userrepresentation的enabled属性设置为true。keydepot版本:12.0.4,spring引导版本:2.1.6.release我试图从收到的响应中读取实体,但也失败了。如有任何帮助,我们将不胜感激用户创建代码
UserRepresentation userRepresentation = new UserRepresentation();
userRepresentation.setUsername(userModel.getEmail());
userRepresentation.setEmail(userModel.getEmail());
userRepresentation.setCredentials(Arrays.asList(createPasswordCredentials(userModel.getPassword())));
userRepresentation.setEnabled(true);
Keycloak keycloak = getKeycloakInstance(keycloakProperties);
Response response = keycloak.realm(keycloakProperties.getRealm()).users().create(userRepresentation);
log.info("Response Code {}", response.getStatus());
认证代表代码:
private static CredentialRepresentation createPasswordCredentials(String password) {
CredentialRepresentation passwordCredentials = new CredentialRepresentation();
passwordCredentials.setTemporary(false);
passwordCredentials.setType(CredentialRepresentation.PASSWORD);
passwordCredentials.setValue(password);
return passwordCredentials;
}
1条答案
按热度按时间gudnpqoy1#
我只想更新这个问题背后的真正原因,我使用的服务器是旧版本的,这个问题得到修复时,对最新的keydeap服务器测试。感谢大家的支持:)