keycloak-aplcache
Changes
misc/Testsuite.md 9(+9 -0)
Details
misc/Testsuite.md 9(+9 -0)
diff --git a/misc/Testsuite.md b/misc/Testsuite.md
index cb77ad7..7f5e036 100644
--- a/misc/Testsuite.md
+++ b/misc/Testsuite.md
@@ -29,6 +29,15 @@ When starting the server it can also import a realm from a json file:
mvn exec:java -Pkeycloak-server -Dimport=testrealm.json
+When starting the server, https transport can be set up by setting keystore containing the server certificate
+and https port, optionally setting the truststore.
+
+ mvn exec:java -Pkeycloak-server \
+ -Djavax.net.ssl.trustStore=/path/to/truststore.jks \
+ -Djavax.net.ssl.keyStore=/path/to/keystore.jks \
+ -Djavax.net.ssl.keyStorePassword=CHANGEME \
+ -Dkeycloak.port.https=8443
+
### Live edit of html and styles
The Keycloak test server can load resources directly from the filesystem instead of the classpath. This allows editing html, styles and updating images without restarting the server. To make the server use resources from the filesystem start with:
diff --git a/testsuite/integration/src/test/java/org/keycloak/testsuite/KeycloakServer.java b/testsuite/integration/src/test/java/org/keycloak/testsuite/KeycloakServer.java
index d31dd10..f981377 100755
--- a/testsuite/integration/src/test/java/org/keycloak/testsuite/KeycloakServer.java
+++ b/testsuite/integration/src/test/java/org/keycloak/testsuite/KeycloakServer.java
@@ -39,7 +39,6 @@ import org.keycloak.services.managers.RealmManager;
import org.keycloak.services.resources.KeycloakApplication;
import org.keycloak.testsuite.util.cli.TestsuiteCLI;
import org.keycloak.util.JsonSerialization;
-import org.mvel2.util.Make;
import javax.servlet.DispatcherType;
import java.io.File;
@@ -51,6 +50,7 @@ import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
+import javax.net.ssl.SSLContext;
/**
* @author <a href="mailto:sthorger@redhat.com">Stian Thorgersen</a>
@@ -64,6 +64,7 @@ public class KeycloakServer {
public static class KeycloakServerConfig {
private String host = "localhost";
private int port = 8081;
+ private int portHttps = -1;
private int workerThreads = Math.max(Runtime.getRuntime().availableProcessors(), 2) * 8;
private String resourcesHome;
@@ -75,6 +76,10 @@ public class KeycloakServer {
return port;
}
+ public int getPortHttps() {
+ return portHttps;
+ }
+
public String getResourcesHome() {
return resourcesHome;
}
@@ -87,6 +92,10 @@ public class KeycloakServer {
this.port = port;
}
+ public void setPortHttps(int portHttps) {
+ this.portHttps = portHttps;
+ }
+
public void setResourcesHome(String resourcesHome) {
this.resourcesHome = resourcesHome;
}
@@ -140,6 +149,10 @@ public class KeycloakServer {
config.setPort(Integer.valueOf(System.getProperty("keycloak.port")));
}
+ if (System.getProperty("keycloak.port.https") != null) {
+ config.setPortHttps(Integer.valueOf(System.getProperty("keycloak.port.https")));
+ }
+
if (System.getProperty("keycloak.bind.address") != null) {
config.setHost(System.getProperty("keycloak.bind.address"));
}
@@ -312,6 +325,10 @@ public class KeycloakServer {
.setWorkerThreads(config.getWorkerThreads())
.setIoThreads(config.getWorkerThreads() / 8);
+ if (config.getPortHttps() != -1) {
+ builder = builder.addHttpsListener(config.getPortHttps(), config.getHost(), SSLContext.getDefault());
+ }
+
server = new UndertowJaxrsServer();
try {
server.start(builder);
@@ -350,7 +367,9 @@ public class KeycloakServer {
info("Loading resources from " + config.getResourcesHome());
}
- info("Started Keycloak (http://" + config.getHost() + ":" + config.getPort() + "/auth) in "
+ info("Started Keycloak (http://" + config.getHost() + ":" + config.getPort() + "/auth"
+ + (config.getPortHttps() > 0 ? ", https://" + config.getHost() + ":" + config.getPortHttps()+ "/auth" : "")
+ + ") in "
+ (System.currentTimeMillis() - start) + " ms\n");
} catch (RuntimeException e) {
server.stop();