keycloak-uncached

Changes

Details

diff --git a/testsuite/integration-arquillian/servers/eap6/pom.xml b/testsuite/integration-arquillian/servers/eap6/pom.xml
index 60dc5ab..6861fe2 100644
--- a/testsuite/integration-arquillian/servers/eap6/pom.xml
+++ b/testsuite/integration-arquillian/servers/eap6/pom.xml
@@ -179,6 +179,67 @@
                 </plugins>
             </build>
         </profile>
+        <profile>
+            <id>ssl</id>
+            <activation>
+                <property>
+                    <name>auth.server.ssl.required</name>
+                </property>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.codehaus.mojo</groupId>
+                        <artifactId>xml-maven-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <id>configure-adapter-subsystem-security</id>
+                                <phase>process-resources</phase>
+                                <goals>
+                                    <goal>transform</goal>
+                                </goals>
+                                <configuration>
+                                    <transformationSets>
+                                        <transformationSet>
+                                            <dir>${keycloak.server.home}/standalone/configuration</dir>
+                                            <includes>
+                                                <include>standalone.xml</include>
+                                            </includes>
+                                            <stylesheet>src/main/xslt/security.xsl</stylesheet>
+                                            <outputDir>${keycloak.server.home}/standalone/configuration</outputDir>
+                                        </transformationSet>
+                                    </transformationSets>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                    <plugin>
+                        <artifactId>maven-resources-plugin</artifactId>
+                        <version>2.7</version>
+                        <executions>
+                            <execution>
+                                <id>copy-keystore</id>
+                                <phase>process-resources</phase>
+                                <goals>
+                                    <goal>copy-resources</goal>
+                                </goals>
+                                <configuration>
+                                     <outputDirectory>${keycloak.server.home}/standalone/configuration</outputDirectory>
+                                     <resources>
+                                         <resource>
+                                              <directory>src/main/keystore</directory>
+                                              <includes>
+                                                  <include>keycloak.jks</include>
+                                                  <include>keycloak.truststore</include>
+                                              </includes>
+                                         </resource>
+                                     </resources>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
     </profiles>
-            
-</project>
+</project>
\ No newline at end of file
diff --git a/testsuite/integration-arquillian/servers/eap6/src/main/keystore/keycloak.jks b/testsuite/integration-arquillian/servers/eap6/src/main/keystore/keycloak.jks
new file mode 100644
index 0000000..81570ab
Binary files /dev/null and b/testsuite/integration-arquillian/servers/eap6/src/main/keystore/keycloak.jks differ
diff --git a/testsuite/integration-arquillian/servers/eap6/src/main/keystore/keycloak.truststore b/testsuite/integration-arquillian/servers/eap6/src/main/keystore/keycloak.truststore
new file mode 100644
index 0000000..2df5170
Binary files /dev/null and b/testsuite/integration-arquillian/servers/eap6/src/main/keystore/keycloak.truststore differ
diff --git a/testsuite/integration-arquillian/servers/eap6/src/main/xslt/security.xsl b/testsuite/integration-arquillian/servers/eap6/src/main/xslt/security.xsl
new file mode 100644
index 0000000..4c96673
--- /dev/null
+++ b/testsuite/integration-arquillian/servers/eap6/src/main/xslt/security.xsl
@@ -0,0 +1,34 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:xalan="http://xml.apache.org/xalan"
+                xmlns:j="urn:jboss:domain:1.7"
+                xmlns:w="urn:jboss:domain:web:2.2"
+                version="2.0"
+                exclude-result-prefixes="xalan j ds k sec">
+
+    <xsl:param name="config"/>
+
+    <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" xalan:indent-amount="4" standalone="no"/>
+    <xsl:strip-space elements="*"/>
+
+    <xsl:template match="//w:connector[@name='http']">
+        <xsl:copy-of select="."/>
+        <connector name="https" protocol="HTTP/1.1" scheme="https" socket-binding="https" secure="true">
+                <ssl name="https" password="secret" certificate-key-file="${{jboss.server.config.dir}}/keycloak.jks"/>
+            </connector>
+    </xsl:template>
+
+    <xsl:template match="//j:extensions">
+         <xsl:copy-of select="."/>
+         <system-properties>
+             <property name="javax.net.ssl.trustStore" value="${{jboss.server.config.dir}}/keycloak.truststore"/>
+             <property name="javax.net.ssl.trustStorePassword" value="secret"/>
+         </system-properties>
+    </xsl:template>
+
+    <xsl:template match="@*|node()">
+        <xsl:copy>
+            <xsl:apply-templates select="@*|node()" />
+        </xsl:copy>
+    </xsl:template>
+
+</xsl:stylesheet>
\ No newline at end of file
diff --git a/testsuite/integration-arquillian/servers/wildfly/pom.xml b/testsuite/integration-arquillian/servers/wildfly/pom.xml
index 6353c5d..cc5918d 100644
--- a/testsuite/integration-arquillian/servers/wildfly/pom.xml
+++ b/testsuite/integration-arquillian/servers/wildfly/pom.xml
@@ -226,6 +226,68 @@
             </build>
         </profile>
         <profile>
+            <id>ssl</id>
+            <activation>
+                <property>
+                    <name>auth.server.ssl.required</name>
+                </property>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.codehaus.mojo</groupId>
+                        <artifactId>xml-maven-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <id>configure-adapter-subsystem-security</id>
+                                <phase>process-resources</phase>
+                                <goals>
+                                    <goal>transform</goal>
+                                </goals>
+                                <configuration>
+                                    <transformationSets>
+                                        <transformationSet>
+                                            <dir>${keycloak.server.home}/standalone/configuration</dir>
+                                            <includes>
+                                                <include>standalone.xml</include>
+                                            </includes>
+                                            <stylesheet>src/main/xslt/security.xsl</stylesheet>
+                                            <outputDir>${keycloak.server.home}/standalone/configuration</outputDir>
+                                        </transformationSet>
+                                    </transformationSets>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                    <plugin>
+                        <artifactId>maven-resources-plugin</artifactId>
+                        <version>2.7</version>
+                        <executions>
+                            <execution>
+                                <id>copy-keystore</id>
+                                <phase>process-resources</phase>
+                                <goals>
+                                    <goal>copy-resources</goal>
+                                </goals>
+                                <configuration>
+                                     <outputDirectory>${keycloak.server.home}/standalone/configuration</outputDirectory>
+                                     <resources>
+                                         <resource>
+                                              <directory>src/main/keystore</directory>
+                                              <includes>
+                                                  <include>keycloak.jks</include>
+                                                  <include>keycloak.truststore</include>
+                                              </includes>
+                                         </resource>
+                                     </resources>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+        <profile>
             <id>jpa</id>
             <properties>
                 <jdbc.mvn.driver.deployment.dir>${keycloak.server.home}/modules/system/layers/base/com/${jdbc.mvn.artifactId}/main</jdbc.mvn.driver.deployment.dir>
@@ -368,5 +430,4 @@
             </build>
         </profile>        
     </profiles>
-    
 </project>
diff --git a/testsuite/integration-arquillian/servers/wildfly/src/main/keystore/keycloak.jks b/testsuite/integration-arquillian/servers/wildfly/src/main/keystore/keycloak.jks
new file mode 100644
index 0000000..81570ab
Binary files /dev/null and b/testsuite/integration-arquillian/servers/wildfly/src/main/keystore/keycloak.jks differ
diff --git a/testsuite/integration-arquillian/servers/wildfly/src/main/keystore/keycloak.truststore b/testsuite/integration-arquillian/servers/wildfly/src/main/keystore/keycloak.truststore
new file mode 100644
index 0000000..2df5170
Binary files /dev/null and b/testsuite/integration-arquillian/servers/wildfly/src/main/keystore/keycloak.truststore differ
diff --git a/testsuite/integration-arquillian/servers/wildfly/src/main/xslt/security.xsl b/testsuite/integration-arquillian/servers/wildfly/src/main/xslt/security.xsl
new file mode 100644
index 0000000..2960ebd
--- /dev/null
+++ b/testsuite/integration-arquillian/servers/wildfly/src/main/xslt/security.xsl
@@ -0,0 +1,55 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:xalan="http://xml.apache.org/xalan"
+                xmlns:j="urn:jboss:domain:3.0"
+                xmlns:ds="urn:jboss:domain:datasources:3.0"
+                xmlns:k="urn:jboss:domain:keycloak:1.1"
+                xmlns:sec="urn:jboss:domain:security:1.2"
+                xmlns:u="urn:jboss:domain:undertow:2.0"
+                version="2.0"
+                exclude-result-prefixes="xalan j ds k sec">
+
+    <xsl:param name="config"/>
+
+    <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" xalan:indent-amount="4" standalone="no"/>
+    <xsl:strip-space elements="*"/>
+
+    <xsl:template match="//j:security-realms">
+        <xsl:copy>
+            <xsl:apply-templates select="node()[name(.)='security-realm']"/>
+            <security-realm name="UndertowRealm">
+                <server-identities>
+                    <ssl>
+                        <keystore path="keycloak.jks" relative-to="jboss.server.config.dir" keystore-password="secret"/>
+                    </ssl>
+                </server-identities>
+            </security-realm>
+        </xsl:copy>
+    </xsl:template>
+    <xsl:template match="//u:http-listener">
+        <http-listener name="default" socket-binding="http" redirect-socket="proxy-https" proxy-address-forwarding="true"/>
+    </xsl:template>
+    <xsl:template match="//u:host">
+        <https-listener name="https" socket-binding="proxy-https" security-realm="UndertowRealm"/>
+        <xsl:copy-of select="."/>
+    </xsl:template>
+
+    <xsl:template match="//j:socket-binding[@name='http']">
+         <xsl:copy-of select="."/>
+         <socket-binding name="proxy-https" port="8443"/>
+    </xsl:template>
+
+    <xsl:template match="//j:extensions">
+         <xsl:copy-of select="."/>
+         <system-properties>
+             <property name="javax.net.ssl.trustStore" value="${{jboss.server.config.dir}}/keycloak.truststore"/>
+             <property name="javax.net.ssl.trustStorePassword" value="secret"/>
+         </system-properties>
+    </xsl:template>
+
+    <xsl:template match="@*|node()">
+        <xsl:copy>
+            <xsl:apply-templates select="@*|node()" />
+        </xsl:copy>
+    </xsl:template>
+
+</xsl:stylesheet>
\ No newline at end of file
diff --git a/testsuite/integration-arquillian/tests/adapters/eap6/pom.xml b/testsuite/integration-arquillian/tests/adapters/eap6/pom.xml
index 433ca63..0026220 100644
--- a/testsuite/integration-arquillian/tests/adapters/eap6/pom.xml
+++ b/testsuite/integration-arquillian/tests/adapters/eap6/pom.xml
@@ -4,7 +4,7 @@
     <parent>
         <groupId>org.keycloak.testsuite</groupId>
         <artifactId>integration-arquillian-tests-adapters</artifactId>
-        <version>1.7.0.Final-SNAPSHOT</version>
+        <version>1.8.0.CR1-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
@@ -131,5 +131,71 @@
                 </plugins>
             </build>
         </profile>
-    </profiles>        
+        <profile>
+            <id>ssl</id>
+            <activation>
+                <property>
+                    <name>app.server.ssl.required</name>
+                </property>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.codehaus.mojo</groupId>
+                        <artifactId>xml-maven-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <id>configure-adapter-subsystem-security</id>
+                                <phase>process-resources</phase>
+                                <goals>
+                                    <goal>transform</goal>
+                                </goals>
+                                <configuration>
+                                    <transformationSets>
+                                        <transformationSet>
+                                            <dir>${app.server.eap6.home}/standalone/configuration</dir>
+                                            <includes>
+                                                <include>standalone.xml</include>
+                                            </includes>
+                                            <stylesheet>src/main/xslt/security.xsl</stylesheet>
+                                            <outputDir>${app.server.eap6.home}/standalone/configuration</outputDir>
+                                        </transformationSet>
+                                    </transformationSets>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                    <plugin>
+                        <artifactId>maven-resources-plugin</artifactId>
+                        <version>2.7</version>
+                        <executions>
+                            <execution>
+                                <id>copy-keystore</id>
+                                <phase>process-resources</phase>
+                                <goals>
+                                    <goal>copy-resources</goal>
+                                </goals>
+                                <configuration>
+                                     <outputDirectory>${app.server.eap6.home}/standalone/configuration</outputDirectory>
+                                     <resources>
+                                         <resource>
+                                              <directory>src/main/keystore</directory>
+                                              <includes>
+                                                  <include>adapter.jks</include>
+                                                  <include>keycloak.truststore</include>
+                                              </includes>
+                                         </resource>
+                                     </resources>
+                                     <nonFilteredFileExtensions>
+                                        <nonFilteredFileExtension>jks</nonFilteredFileExtension>
+                                        <nonFilteredFileExtension>truststore</nonFilteredFileExtension>
+                                     </nonFilteredFileExtensions>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
 </project>
diff --git a/testsuite/integration-arquillian/tests/adapters/eap6/src/main/keystore/adapter.jks b/testsuite/integration-arquillian/tests/adapters/eap6/src/main/keystore/adapter.jks
new file mode 100644
index 0000000..57cc34b
Binary files /dev/null and b/testsuite/integration-arquillian/tests/adapters/eap6/src/main/keystore/adapter.jks differ
diff --git a/testsuite/integration-arquillian/tests/adapters/eap6/src/main/keystore/keycloak.truststore b/testsuite/integration-arquillian/tests/adapters/eap6/src/main/keystore/keycloak.truststore
new file mode 100644
index 0000000..2df5170
Binary files /dev/null and b/testsuite/integration-arquillian/tests/adapters/eap6/src/main/keystore/keycloak.truststore differ
diff --git a/testsuite/integration-arquillian/tests/adapters/eap6/src/main/xslt/security.xsl b/testsuite/integration-arquillian/tests/adapters/eap6/src/main/xslt/security.xsl
new file mode 100644
index 0000000..05fb42e
--- /dev/null
+++ b/testsuite/integration-arquillian/tests/adapters/eap6/src/main/xslt/security.xsl
@@ -0,0 +1,34 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:xalan="http://xml.apache.org/xalan"
+                xmlns:j="urn:jboss:domain:1.7"
+                xmlns:w="urn:jboss:domain:web:2.2"
+                version="2.0"
+                exclude-result-prefixes="xalan j ds k sec">
+
+    <xsl:param name="config"/>
+
+    <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" xalan:indent-amount="4" standalone="no"/>
+    <xsl:strip-space elements="*"/>
+
+    <xsl:template match="//w:connector[@name='http']">
+        <xsl:copy-of select="."/>
+        <connector name="https" protocol="HTTP/1.1" scheme="https" socket-binding="https" secure="true">
+                <ssl name="https" password="secret" certificate-key-file="${{jboss.server.config.dir}}/adapter.jks"/>
+            </connector>
+    </xsl:template>
+
+    <xsl:template match="//j:extensions">
+         <xsl:copy-of select="."/>
+         <system-properties>
+             <property name="javax.net.ssl.trustStore" value="${{jboss.server.config.dir}}/keycloak.truststore"/>
+             <property name="javax.net.ssl.trustStorePassword" value="secret"/>
+         </system-properties>
+    </xsl:template>
+
+    <xsl:template match="@*|node()">
+        <xsl:copy>
+            <xsl:apply-templates select="@*|node()" />
+        </xsl:copy>
+    </xsl:template>
+
+</xsl:stylesheet>
\ No newline at end of file
diff --git a/testsuite/integration-arquillian/tests/adapters/pom.xml b/testsuite/integration-arquillian/tests/adapters/pom.xml
index 759ad6f..07aae0d 100644
--- a/testsuite/integration-arquillian/tests/adapters/pom.xml
+++ b/testsuite/integration-arquillian/tests/adapters/pom.xml
@@ -15,8 +15,10 @@
     <properties>
         <app.server.port.offset>200</app.server.port.offset>
         <app.server.http.port>8280</app.server.http.port>
+        <app.server.https.port>8643</app.server.https.port>
         <app.server.management.port>10190</app.server.management.port>
         <app.server.management.port.jmx>10199</app.server.management.port.jmx>
+        <app.server.ssl.required>false</app.server.ssl.required>
         <adapter.test.props>-Dapp.server.base.url=http://localhost:${app.server.http.port} -Dmy.host.name=localhost</adapter.test.props>
         <exclude.adapters>-</exclude.adapters>
         
@@ -91,9 +93,11 @@
 
                             <app.server.port.offset>${app.server.port.offset}</app.server.port.offset>
                             <app.server.http.port>${app.server.http.port}</app.server.http.port>
+                            <app.server.https.port>${app.server.https.port}</app.server.https.port>
                             <app.server.management.port>${app.server.management.port}</app.server.management.port>
                             <app.server.management.port.jmx>${app.server.management.port.jmx}</app.server.management.port.jmx>
-                            
+                            <app.server.ssl.required>${app.server.ssl.required}</app.server.ssl.required>
+
                             <adapter.test.props>${adapter.test.props}</adapter.test.props>
 
                             <adapter.libs.mode>bundled</adapter.libs.mode>
diff --git a/testsuite/integration-arquillian/tests/adapters/wildfly/pom.xml b/testsuite/integration-arquillian/tests/adapters/wildfly/pom.xml
index 1e7a0be..fbac8fe 100644
--- a/testsuite/integration-arquillian/tests/adapters/wildfly/pom.xml
+++ b/testsuite/integration-arquillian/tests/adapters/wildfly/pom.xml
@@ -130,5 +130,71 @@
                 </plugins>
             </build>
         </profile>
+        <profile>
+            <id>ssl</id>
+            <activation>
+                <property>
+                    <name>app.server.ssl.required</name>
+                </property>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.codehaus.mojo</groupId>
+                        <artifactId>xml-maven-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <id>configure-adapter-subsystem-security</id>
+                                <phase>process-resources</phase>
+                                <goals>
+                                    <goal>transform</goal>
+                                </goals>
+                                <configuration>
+                                    <transformationSets>
+                                        <transformationSet>
+                                            <dir>${app.server.wildfly.home}/standalone/configuration</dir>
+                                            <includes>
+                                                <include>standalone.xml</include>
+                                            </includes>
+                                            <stylesheet>src/main/xslt/security.xsl</stylesheet>
+                                            <outputDir>${app.server.wildfly.home}/standalone/configuration</outputDir>
+                                        </transformationSet>
+                                    </transformationSets>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                    <plugin>
+                        <artifactId>maven-resources-plugin</artifactId>
+                        <version>2.7</version>
+                        <executions>
+                            <execution>
+                                <id>copy-keystore</id>
+                                <phase>process-resources</phase>
+                                <goals>
+                                    <goal>copy-resources</goal>
+                                </goals>
+                                <configuration>
+                                     <outputDirectory>${app.server.wildfly.home}/standalone/configuration</outputDirectory>
+                                     <resources>
+                                         <resource>
+                                              <directory>src/main/keystore</directory>
+                                              <includes>
+                                                  <include>adapter.jks</include>
+                                                  <include>keycloak.truststore</include>
+                                              </includes>
+                                         </resource>
+                                     </resources>
+                                     <nonFilteredFileExtensions>
+                                        <nonFilteredFileExtension>jks</nonFilteredFileExtension>
+                                        <nonFilteredFileExtension>truststore</nonFilteredFileExtension>
+                                     </nonFilteredFileExtensions>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
     </profiles>    
 </project>
diff --git a/testsuite/integration-arquillian/tests/adapters/wildfly/src/main/keystore/adapter.jks b/testsuite/integration-arquillian/tests/adapters/wildfly/src/main/keystore/adapter.jks
new file mode 100644
index 0000000..57cc34b
Binary files /dev/null and b/testsuite/integration-arquillian/tests/adapters/wildfly/src/main/keystore/adapter.jks differ
diff --git a/testsuite/integration-arquillian/tests/adapters/wildfly/src/main/keystore/keycloak.truststore b/testsuite/integration-arquillian/tests/adapters/wildfly/src/main/keystore/keycloak.truststore
new file mode 100644
index 0000000..2df5170
Binary files /dev/null and b/testsuite/integration-arquillian/tests/adapters/wildfly/src/main/keystore/keycloak.truststore differ
diff --git a/testsuite/integration-arquillian/tests/adapters/wildfly/src/main/xslt/security.xsl b/testsuite/integration-arquillian/tests/adapters/wildfly/src/main/xslt/security.xsl
new file mode 100644
index 0000000..a3880c2
--- /dev/null
+++ b/testsuite/integration-arquillian/tests/adapters/wildfly/src/main/xslt/security.xsl
@@ -0,0 +1,55 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:xalan="http://xml.apache.org/xalan"
+                xmlns:j="urn:jboss:domain:3.0"
+                xmlns:ds="urn:jboss:domain:datasources:3.0"
+                xmlns:k="urn:jboss:domain:keycloak:1.1"
+                xmlns:sec="urn:jboss:domain:security:1.2"
+                xmlns:u="urn:jboss:domain:undertow:2.0"
+                version="2.0"
+                exclude-result-prefixes="xalan j ds k sec">
+
+    <xsl:param name="config"/>
+
+    <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" xalan:indent-amount="4" standalone="no"/>
+    <xsl:strip-space elements="*"/>
+
+    <xsl:template match="//j:security-realms">
+        <xsl:copy>
+            <xsl:apply-templates select="node()[name(.)='security-realm']"/>
+            <security-realm name="UndertowRealm">
+                <server-identities>
+                    <ssl>
+                        <keystore path="adapter.jks" relative-to="jboss.server.config.dir" keystore-password="secret"/>
+                    </ssl>
+                </server-identities>
+            </security-realm>
+        </xsl:copy>
+    </xsl:template>
+    <xsl:template match="//u:http-listener">
+        <http-listener name="default" socket-binding="http" redirect-socket="proxy-https" proxy-address-forwarding="true"/>
+    </xsl:template>
+    <xsl:template match="//u:host">
+        <https-listener name="https" socket-binding="proxy-https" security-realm="UndertowRealm"/>
+        <xsl:copy-of select="."/>
+    </xsl:template>
+
+    <xsl:template match="//j:socket-binding[@name='http']">
+         <xsl:copy-of select="."/>
+         <socket-binding name="proxy-https" port="8443"/>
+    </xsl:template>
+
+    <xsl:template match="//j:extensions">
+         <xsl:copy-of select="."/>
+         <system-properties>
+             <property name="javax.net.ssl.trustStore" value="${{jboss.server.config.dir}}/keycloak.truststore"/>
+             <property name="javax.net.ssl.trustStorePassword" value="secret"/>
+         </system-properties>
+    </xsl:template>
+
+    <xsl:template match="@*|node()">
+        <xsl:copy>
+            <xsl:apply-templates select="@*|node()" />
+        </xsl:copy>
+    </xsl:template>
+
+</xsl:stylesheet>
\ No newline at end of file
diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/ContainersTestEnricher.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/ContainersTestEnricher.java
index f1328a9..50beaa6 100644
--- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/ContainersTestEnricher.java
+++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/ContainersTestEnricher.java
@@ -249,13 +249,19 @@ public class ContainersTestEnricher {
 
     public static String getAuthServerContextRootFromSystemProperty() {
         // TODO find if this can be extracted from ARQ metadata instead of System properties
-        return "http://localhost:" + Integer.parseInt(
-                System.getProperty("auth.server.http.port", "8180"));
+        boolean sslRequired = Boolean.parseBoolean(System.getProperty("auth.server.ssl.required"));
+        if (sslRequired) {
+            return "https://localhost:" + Integer.parseInt(System.getProperty("auth.server.https.port", "8543"));
+        }
+        return "http://localhost:" + Integer.parseInt(System.getProperty("auth.server.http.port", "8180"));
     }
 
     public static String getAppServerContextRootFromSystemProperty() {
-        return "http://localhost:" + Integer.parseInt(
-                System.getProperty("app.server.http.port", "8280"));
+        boolean sslRequired = Boolean.parseBoolean(System.getProperty("app.server.ssl.required"));
+        if (sslRequired) {
+            return "https://localhost:" + Integer.parseInt(System.getProperty("app.server.https.port", "8643"));
+        }
+        return "http://localhost:" + Integer.parseInt(System.getProperty("app.server.http.port", "8280"));
     }
 
 }
diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/DeploymentArchiveProcessor.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/DeploymentArchiveProcessor.java
index 0a965d8..2be45f7 100644
--- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/DeploymentArchiveProcessor.java
+++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/DeploymentArchiveProcessor.java
@@ -74,6 +74,9 @@ public class DeploymentArchiveProcessor implements ApplicationArchiveProcessor {
                     adapterConfig.setAuthServerUrl(getAuthServerContextRootFromSystemProperty() + "/auth");
                     adapterConfig.setRealmKey(REALM_KEY);
                 }
+                if ("true".equals(System.getProperty("app.server.ssl.required"))) {
+                    adapterConfig.setSslRequired("all");
+                }
 
                 archive.add(new StringAsset(JsonSerialization.writeValueAsPrettyString(adapterConfig)),
                         adapterConfigPath);
diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/provider/URLProvider.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/provider/URLProvider.java
index dd31483..d085f86 100644
--- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/provider/URLProvider.java
+++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/provider/URLProvider.java
@@ -22,6 +22,8 @@ public class URLProvider extends URLResourceProvider {
     public static final String LOCALHOST_ADDRESS = "127.0.0.1";
     public static final String LOCALHOST_HOSTNAME = "localhost";
 
+    private final boolean appServerSslRequired = Boolean.parseBoolean(System.getProperty("app.server.ssl.required"));
+
     @Inject
     Instance<TestContext> testContext;
 
@@ -36,6 +38,9 @@ public class URLProvider extends URLResourceProvider {
             try {
                 url = fixLocalhost(url);
                 url = removeTrailingSlash(url);
+                if (appServerSslRequired) {
+                    url = fixSsl(url);
+                }
             } catch (MalformedURLException ex) {
                 log.log(Level.FATAL, null, ex);
             }
@@ -67,6 +72,12 @@ public class URLProvider extends URLResourceProvider {
         return fixedUrl;
     }
 
+    public URL fixSsl(URL url) throws MalformedURLException {
+        URL fixedUrl = url;
+        String urlString = fixedUrl.toExternalForm().replace("http", "https").replace(System.getProperty("app.server.http.port", "8280"), System.getProperty("app.server.https.port", "8643"));
+        return new URL(urlString);
+    }
+
     public URL removeTrailingSlash(URL url) throws MalformedURLException {
         URL urlWithoutSlash = url;
         String urlS = url.toExternalForm();
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/AbstractAdapterTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/AbstractAdapterTest.java
index 73ea7a6..9c33410 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/AbstractAdapterTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/AbstractAdapterTest.java
@@ -49,6 +49,9 @@ public abstract class AbstractAdapterTest extends AbstractAuthTest {
                 modifyClientRedirectUris(tr, "^(/.*/\\*)", appServerContextRootPage.toString() + "$1");
                 modifyClientUrls(tr, "^(/.*)", appServerContextRootPage.toString() + "$1");
             }
+            if ("true".equals(System.getProperty("auth.server.ssl.required"))) {
+                tr.setSslRequired("all");
+            }
         }
     }
 
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/AbstractDemoExampleAdapterTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/AbstractDemoExampleAdapterTest.java
index 2a48dac..4672978 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/AbstractDemoExampleAdapterTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/AbstractDemoExampleAdapterTest.java
@@ -243,7 +243,7 @@ public abstract class AbstractDemoExampleAdapterTest extends AbstractExampleAdap
 
         List<WebElement> resultList = loginEventsPage.table().rows();
 
-        assertEquals(2, resultList.size());
+        assertEquals(1, resultList.size());
 
         resultList.get(0).findElement(By.xpath(".//td[text()='REVOKE_GRANT']"));
         resultList.get(0).findElement(By.xpath(".//td[text()='Client']/../td[text()='account']"));
@@ -255,7 +255,7 @@ public abstract class AbstractDemoExampleAdapterTest extends AbstractExampleAdap
         loginEventsPage.table().update();
         resultList = loginEventsPage.table().rows();
 
-        assertEquals(7, resultList.size());
+        assertEquals(1, resultList.size());
 
         resultList.get(0).findElement(By.xpath(".//td[text()='LOGIN']"));
         resultList.get(0).findElement(By.xpath(".//td[text()='Client']/../td[text()='customer-portal']"));
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/AbstractJSConsoleExampleAdapterTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/AbstractJSConsoleExampleAdapterTest.java
index 5b7888c..6eeca5d 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/AbstractJSConsoleExampleAdapterTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/AbstractJSConsoleExampleAdapterTest.java
@@ -214,7 +214,7 @@ public abstract class AbstractJSConsoleExampleAdapterTest extends AbstractExampl
 
         List<WebElement> resultList = loginEventsPage.table().rows();
 
-        assertEquals(2, resultList.size());
+        assertEquals(1, resultList.size());
 
         resultList.get(0).findElement(By.xpath(".//td[text()='REVOKE_GRANT']"));
         resultList.get(0).findElement(By.xpath(".//td[text()='Client']/../td[text()='account']"));
@@ -226,7 +226,7 @@ public abstract class AbstractJSConsoleExampleAdapterTest extends AbstractExampl
         loginEventsPage.table().update();
         resultList = loginEventsPage.table().rows();
 
-        assertEquals(7, resultList.size());
+        assertEquals(1, resultList.size());
 
         resultList.get(0).findElement(By.xpath(".//td[text()='LOGIN']"));
         resultList.get(0).findElement(By.xpath(".//td[text()='Client']/../td[text()='js-console']"));
diff --git a/testsuite/integration-arquillian/tests/pom.xml b/testsuite/integration-arquillian/tests/pom.xml
index e9473ad..bfac920 100644
--- a/testsuite/integration-arquillian/tests/pom.xml
+++ b/testsuite/integration-arquillian/tests/pom.xml
@@ -24,8 +24,10 @@
         <auth.server.container>auth-server-undertow</auth.server.container>
         <auth.server.port.offset>100</auth.server.port.offset>
         <auth.server.http.port>8180</auth.server.http.port>
+        <auth.server.https.port>8543</auth.server.https.port>
         <auth.server.management.port>10090</auth.server.management.port>
         <auth.server.management.port.jmx>10099</auth.server.management.port.jmx>
+        <auth.server.ssl.required>false</auth.server.ssl.required>
         <startup.timeout.sec>60</startup.timeout.sec>
         
         <browser>phantomjs</browser>
@@ -84,8 +86,10 @@
                             <auth.server.undertow>true</auth.server.undertow>
                             <auth.server.port.offset>${auth.server.port.offset}</auth.server.port.offset>
                             <auth.server.http.port>${auth.server.http.port}</auth.server.http.port>
+                            <auth.server.https.port>${auth.server.https.port}</auth.server.https.port>
                             <auth.server.management.port>${auth.server.management.port}</auth.server.management.port>
                             <auth.server.management.port.jmx>${auth.server.management.port.jmx}</auth.server.management.port.jmx>
+                            <auth.server.ssl.required>${auth.server.ssl.required}</auth.server.ssl.required>
                             <startup.timeout.sec>${startup.timeout.sec}</startup.timeout.sec>
                         </systemPropertyVariables>
                         <properties>
@@ -162,18 +166,18 @@
                     <groupId>org.jboss.arquillian.extension</groupId>
                     <artifactId>arquillian-phantom-driver</artifactId>
                 </dependency>
-                <!-- TODO: investigate if we need this dependency
-                <dependency>
-                    <groupId>org.jboss.arquillian.graphene</groupId>
-                    <artifactId>arquillian-graphene-impl</artifactId>
-                    <version>1.0.0.CR3</version>
-                </dependency>-->
                 <dependency>
                     <groupId>org.jboss.arquillian.graphene</groupId>
                     <artifactId>arquillian-browser-screenshooter</artifactId>
-                    <version>2.1.0.Alpha2</version>
+                    <version>2.1.0.Alpha3</version><!-- TODO upgrade <arquillian-graphene.version> and use ${arquillian-graphene.version} -->
                 </dependency>
                 
+<!--                <dependency>
+                    <groupId>org.arquillian.extension</groupId>
+                    <artifactId>arquillian-recorder-reporter-impl</artifactId>
+                    <version>1.1.0.Final</version>
+                </dependency>-->
+                
                 <dependency>
                     <groupId>log4j</groupId>
                     <artifactId>log4j</artifactId>