使用keydrope创建用户

tp5buhyn  于 2021-07-13  发布在  Java
关注(0)|答案(1)|浏览(326)

我正在尝试在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;
  }
gudnpqoy

gudnpqoy1#

我只想更新这个问题背后的真正原因,我使用的服务器是旧版本的,这个问题得到修复时,对最新的keydeap服务器测试。感谢大家的支持:)

相关问题