package hamburg.schwartau.datasetup.bootstrap; import org.keycloak.admin.client.Keycloak; import org.keycloak.admin.client.resource.UsersResource; import org.keycloak.representations.idm.CredentialRepresentation; import org.keycloak.representations.idm.UserRepresentation; import javax.ws.rs.core.Response; import java.util.Arrays; public class UserSetup { private static String PASSWORD = "password"; private final UsersResource users; public UserSetup(Keycloak keycloak) { this.users = keycloak.realm(RealmSetup.REALM).users(); } public void execute() { createUser("mmustermann", "Max", "Mustermann"); createUser("jdoe", "John", "Doe"); } public String createUser(String name, String firstName, String lastName) { UserRepresentation user = new UserRepresentation(); user.setUsername(name); user.setFirstName(firstName); user.setLastName(lastName); user.setEnabled(true); user.setCredentials(Arrays.asList(createPassword(PASSWORD))); Response response = users.create(user); return getCreatedId(response); } private CredentialRepresentation createPassword(final String password) { CredentialRepresentation passwordCred = new CredentialRepresentation(); passwordCred.setTemporary(false); passwordCred.setType(CredentialRepresentation.PASSWORD); passwordCred.setValue(password); return passwordCred; } private String getCreatedId(Response response) { return response.getLocation().toString().replaceAll(".*/", ""); } }