我想将Keycloak用作我的Spring Boot应用程序的身份提供者,但无法创建新用户。

我已经在Keycloak中创建了一个新领域,并将Spring Boot应用程序与身份提供程序连接在一起。

Keycloak kc = KeycloakBuilder.builder()
    .serverUrl("http://localhost:8080/auth")
    .username("admin")
    .password("admin")
    .clientId("admin-cli")
    .authorization("authorization") // it throws 403: Unauthorized without this line
    .realm("master")
    .resteasyClient(new ResteasyClientBuilder().connectionPoolSize(10).build())
    .build();

CredentialRepresentation passwordCred = new CredentialRepresentation();
passwordCred.setTemporary(false);
passwordCred.setType(CredentialRepresentation.PASSWORD);
passwordCred.setValue("admin");

UserRepresentation user = new UserRepresentation();
user.setEnabled(true);
user.setUsername("username");
user.setCredentials(Collections.singletonList(passwordCred));

Response response = kc
    .realm("master")
    .users()
    .create(user);


我提供的代码应该创建一个新用户,但事实并非如此。它也不会引发异常。

最佳答案

创建用户后尝试关闭响应,以确保刷新了所有数据:

Response response = kc
.realm("admin-cli")
.users()
.create(user);

response.close();

关于java - 无法使用keycloak-admin-client在Keycloak中创建用户,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57240909/

10-10 17:54