Skip to content

Instantly share code, notes, and snippets.

@thomasdarimont
Created January 12, 2016 19:15
Show Gist options
  • Select an option

  • Save thomasdarimont/43689aefb37540624e35 to your computer and use it in GitHub Desktop.

Select an option

Save thomasdarimont/43689aefb37540624e35 to your computer and use it in GitHub Desktop.

Revisions

  1. thomasdarimont revised this gist Jan 12, 2016. 1 changed file with 4 additions and 0 deletions.
    4 changes: 4 additions & 0 deletions pom.xml
    Original file line number Diff line number Diff line change
    @@ -14,6 +14,7 @@
    </properties>

    <dependencies>

    <dependency>
    <groupId>org.keycloak</groupId>
    <artifactId>keycloak-admin-client</artifactId>
    @@ -25,15 +26,18 @@
    <artifactId>jaxrs-api</artifactId>
    <version>${resteasy.version}</version>
    </dependency>

    <dependency>
    <groupId>org.jboss.resteasy</groupId>
    <artifactId>resteasy-client</artifactId>
    <version>${resteasy.version}</version>
    </dependency>

    <dependency>
    <groupId>org.jboss.resteasy</groupId>
    <artifactId>resteasy-jackson-provider</artifactId>
    <version>${resteasy.version}</version>
    </dependency>

    </dependencies>
    </project>
  2. thomasdarimont created this gist Jan 12, 2016.
    56 changes: 56 additions & 0 deletions KeycloakAdminClientExample.java
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,56 @@
    package de.tdlabs.training.keycloak;

    import static java.util.Arrays.asList;

    import javax.ws.rs.core.Response;

    import org.jboss.resteasy.client.jaxrs.ResteasyClientBuilder;
    import org.keycloak.admin.client.Keycloak;
    import org.keycloak.admin.client.KeycloakBuilder;
    import org.keycloak.representations.idm.CredentialRepresentation;
    import org.keycloak.representations.idm.UserRepresentation;

    public class KeycloakAdminClientExample {

    public static void main(String[] args) throws Exception {

    Keycloak kc = KeycloakBuilder.builder() //
    .serverUrl("http://localhost:8081/auth") //
    .realm("rest-example")//
    .username("rest-user-admin") //
    .password("password") //
    .clientId("admin-cli") //
    .resteasyClient(new ResteasyClientBuilder().connectionPoolSize(10).build()) //
    .build();

    CredentialRepresentation credential = new CredentialRepresentation();
    credential.setType(CredentialRepresentation.PASSWORD);
    credential.setValue("test123");
    credential.setTemporary(false);

    UserRepresentation user = new UserRepresentation();
    user.setUsername("testuser");
    user.setFirstName("Test");
    user.setLastName("User");
    user.setCredentials(asList(credential));
    user.setEnabled(true);
    user.setRealmRoles(asList("admin"));

    // Create testuser
    Response result = kc.realm("rest-example").users().create(user);
    if (result.getStatus() != 201) {
    System.err.println("Couldn't create user.");
    System.exit(0);
    }
    System.out.println("Testuser created.... verify in keycloak!");

    System.out.println("Press any key...");
    System.in.read();

    // Delete testuser
    String locationHeader = result.getHeaderString("Location");
    String userId = locationHeader.replaceAll(".*/(.*)$", "$1");
    kc.realm("rest-example").users().get(userId).remove();
    }

    }
    39 changes: 39 additions & 0 deletions pom.xml
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,39 @@
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>de.tdlabs</groupId>
    <artifactId>keycloak-training-rest-api-example</artifactId>
    <version>0.0.1-SNAPSHOT</version>

    <properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>

    <keycloak.version>1.8.0.CR1-SNAPSHOT</keycloak.version>
    <resteasy.version>3.0.9.Final</resteasy.version>
    </properties>

    <dependencies>
    <dependency>
    <groupId>org.keycloak</groupId>
    <artifactId>keycloak-admin-client</artifactId>
    <version>${keycloak.version}</version>
    </dependency>

    <dependency>
    <groupId>org.jboss.resteasy</groupId>
    <artifactId>jaxrs-api</artifactId>
    <version>${resteasy.version}</version>
    </dependency>
    <dependency>
    <groupId>org.jboss.resteasy</groupId>
    <artifactId>resteasy-client</artifactId>
    <version>${resteasy.version}</version>
    </dependency>
    <dependency>
    <groupId>org.jboss.resteasy</groupId>
    <artifactId>resteasy-jackson-provider</artifactId>
    <version>${resteasy.version}</version>
    </dependency>
    </dependencies>
    </project>