KEYCLOAK-9509 Upgrade to Wildfly 15
KEYCLOAK-9584 Update Wildfly Arquillian version KEYCLOAK-9581: Fix CookiePathTests KEYCLOAK-9607 CLI sripts and configuration files update KEYCLOAK-9580 Fix component registration error KEYCLOAK-9590 Update JDG to newest version * Infinispan is using whatever version is set in root pom.xml. KEYCLOAK-9509 Fix Undertow tests Co-Authored-By: vramik <vramik@redhat.com> Co-Authored-By: sebastienblanc <scm.blanc@gmail.com>
This commit is contained in:
parent
99f8e5f808
commit
37ef47d6ab
22 changed files with 100 additions and 55 deletions
|
@ -17,7 +17,7 @@
|
||||||
~ limitations under the License.
|
~ limitations under the License.
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<domain xmlns="urn:jboss:domain:8.0">
|
<domain xmlns="urn:jboss:domain:9.0">
|
||||||
|
|
||||||
<extensions>
|
<extensions>
|
||||||
<?EXTENSIONS?>
|
<?EXTENSIONS?>
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
is also started by this host controller file. The other instance must be started
|
is also started by this host controller file. The other instance must be started
|
||||||
via host-slave.xml
|
via host-slave.xml
|
||||||
-->
|
-->
|
||||||
<host name="master" xmlns="urn:jboss:domain:8.0">
|
<host name="master" xmlns="urn:jboss:domain:9.0">
|
||||||
<extensions>
|
<extensions>
|
||||||
<?EXTENSIONS?>
|
<?EXTENSIONS?>
|
||||||
</extensions>
|
</extensions>
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
~ limitations under the License.
|
~ limitations under the License.
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<host xmlns="urn:jboss:domain:8.0">
|
<host xmlns="urn:jboss:domain:9.0">
|
||||||
<extensions>
|
<extensions>
|
||||||
<?EXTENSIONS?>
|
<?EXTENSIONS?>
|
||||||
</extensions>
|
</extensions>
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
via host-slave.xml
|
via host-slave.xml
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<host name="master" xmlns="urn:jboss:domain:8.0">
|
<host name="master" xmlns="urn:jboss:domain:9.0">
|
||||||
<extensions>
|
<extensions>
|
||||||
<?EXTENSIONS?>
|
<?EXTENSIONS?>
|
||||||
</extensions>
|
</extensions>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version='1.0' encoding='UTF-8'?>
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
|
|
||||||
<server xmlns="urn:jboss:domain:8.0">
|
<server xmlns="urn:jboss:domain:9.0">
|
||||||
|
|
||||||
<extensions>
|
<extensions>
|
||||||
<?EXTENSIONS?>
|
<?EXTENSIONS?>
|
||||||
|
|
|
@ -571,4 +571,11 @@ if (outcome == success) of /profile=$clusteredProfile/subsystem=jgroups/stack=tc
|
||||||
end-try
|
end-try
|
||||||
end-if
|
end-if
|
||||||
|
|
||||||
|
# Migrate from 4.8.3 to 5.0.0
|
||||||
|
if (outcome == failed) of /profile=$clusteredProfile/subsystem=logging/logger=io.jaegertracing.Configuration/:read-resource
|
||||||
|
echo Adding io.jaegertracing.Configuration logger
|
||||||
|
/profile=$clusteredProfile/subsystem=logging/logger=io.jaegertracing.Configuration/:add(category=io.jaegertracing.Configuration,level=WARN)
|
||||||
|
echo
|
||||||
|
end-if
|
||||||
|
|
||||||
echo *** End Migration of /profile=$clusteredProfile ***
|
echo *** End Migration of /profile=$clusteredProfile ***
|
||||||
|
|
|
@ -496,4 +496,11 @@ if (outcome == success) of /profile=$standaloneProfile/subsystem=jgroups/stack=t
|
||||||
end-try
|
end-try
|
||||||
end-if
|
end-if
|
||||||
|
|
||||||
|
# Migrate from 4.8.3 to 5.0.0
|
||||||
|
if (outcome == failed) of /profile=$standaloneProfile/subsystem=logging/logger=io.jaegertracing.Configuration/:read-resource
|
||||||
|
echo Adding io.jaegertracing.Configuration logger
|
||||||
|
/profile=$standaloneProfile/subsystem=logging/logger=io.jaegertracing.Configuration/:add(category=io.jaegertracing.Configuration,level=WARN)
|
||||||
|
echo
|
||||||
|
end-if
|
||||||
|
|
||||||
echo *** End Migration of /profile=$standaloneProfile ***
|
echo *** End Migration of /profile=$standaloneProfile ***
|
||||||
|
|
|
@ -567,4 +567,11 @@ if (outcome == success) of /subsystem=jgroups/stack=tcp/transport=TCP/property=p
|
||||||
end-try
|
end-try
|
||||||
end-if
|
end-if
|
||||||
|
|
||||||
|
# Migrate from 4.8.3 to 5.0.0
|
||||||
|
if (outcome == failed) of /subsystem=logging/logger=io.jaegertracing.Configuration/:read-resource
|
||||||
|
echo Adding io.jaegertracing.Configuration logger
|
||||||
|
/subsystem=logging/logger=io.jaegertracing.Configuration/:add(category=io.jaegertracing.Configuration,level=WARN)
|
||||||
|
echo
|
||||||
|
end-if
|
||||||
|
|
||||||
echo *** End Migration ***
|
echo *** End Migration ***
|
||||||
|
|
|
@ -456,4 +456,11 @@ if (result == undefined) of /subsystem=transactions/:read-attribute(name=node-id
|
||||||
echo
|
echo
|
||||||
end-if
|
end-if
|
||||||
|
|
||||||
|
# Migrate from 4.8.3 to 5.0.0
|
||||||
|
if (outcome == failed) of /subsystem=logging/logger=io.jaegertracing.Configuration/:read-resource
|
||||||
|
echo Adding io.jaegertracing.Configuration logger
|
||||||
|
/subsystem=logging/logger=io.jaegertracing.Configuration/:add(category=io.jaegertracing.Configuration,level=WARN)
|
||||||
|
echo
|
||||||
|
end-if
|
||||||
|
|
||||||
echo *** End Migration ***
|
echo *** End Migration ***
|
||||||
|
|
|
@ -16,7 +16,8 @@
|
||||||
*/
|
*/
|
||||||
package org.keycloak.client.admin.cli.httpcomponents;
|
package org.keycloak.client.admin.cli.httpcomponents;
|
||||||
|
|
||||||
import org.apache.http.annotation.NotThreadSafe;
|
import org.apache.http.annotation.Contract;
|
||||||
|
import org.apache.http.annotation.ThreadingBehavior;
|
||||||
import org.apache.http.client.methods.HttpEntityEnclosingRequestBase;
|
import org.apache.http.client.methods.HttpEntityEnclosingRequestBase;
|
||||||
|
|
||||||
import java.net.URI;
|
import java.net.URI;
|
||||||
|
@ -24,7 +25,7 @@ import java.net.URI;
|
||||||
/**
|
/**
|
||||||
* @author <a href="mailto:mstrukel@redhat.com">Marko Strukelj</a>
|
* @author <a href="mailto:mstrukel@redhat.com">Marko Strukelj</a>
|
||||||
*/
|
*/
|
||||||
@NotThreadSafe
|
@Contract(threading = ThreadingBehavior.UNSAFE)
|
||||||
public class HttpDelete extends HttpEntityEnclosingRequestBase {
|
public class HttpDelete extends HttpEntityEnclosingRequestBase {
|
||||||
|
|
||||||
public HttpDelete(final String uri) {
|
public HttpDelete(final String uri) {
|
||||||
|
|
|
@ -33,6 +33,8 @@ import java.util.concurrent.ExecutionException;
|
||||||
import java.util.concurrent.ExecutorService;
|
import java.util.concurrent.ExecutorService;
|
||||||
import java.util.concurrent.Executors;
|
import java.util.concurrent.Executors;
|
||||||
import java.util.concurrent.Future;
|
import java.util.concurrent.Future;
|
||||||
|
import org.infinispan.commons.CacheConfigurationException;
|
||||||
|
import org.infinispan.factories.ComponentRegistry;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Startup initialization for reading persistent userSessions to be filled into infinispan/memory . In cluster,
|
* Startup initialization for reading persistent userSessions to be filled into infinispan/memory . In cluster,
|
||||||
|
@ -48,7 +50,6 @@ public class InfinispanCacheInitializer extends BaseCacheInitializer {
|
||||||
|
|
||||||
private final int maxErrors;
|
private final int maxErrors;
|
||||||
|
|
||||||
|
|
||||||
public InfinispanCacheInitializer(KeycloakSessionFactory sessionFactory, Cache<String, Serializable> workCache, SessionLoader sessionLoader, String stateKeySuffix, int sessionsPerSegment, int maxErrors) {
|
public InfinispanCacheInitializer(KeycloakSessionFactory sessionFactory, Cache<String, Serializable> workCache, SessionLoader sessionLoader, String stateKeySuffix, int sessionsPerSegment, int maxErrors) {
|
||||||
super(sessionFactory, workCache, sessionLoader, stateKeySuffix, sessionsPerSegment);
|
super(sessionFactory, workCache, sessionLoader, stateKeySuffix, sessionsPerSegment);
|
||||||
this.maxErrors = maxErrors;
|
this.maxErrors = maxErrors;
|
||||||
|
@ -56,7 +57,14 @@ public class InfinispanCacheInitializer extends BaseCacheInitializer {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void initCache() {
|
public void initCache() {
|
||||||
this.workCache.getAdvancedCache().getComponentRegistry().registerComponent(sessionFactory, KeycloakSessionFactory.class);
|
final ComponentRegistry cr = this.workCache.getAdvancedCache().getComponentRegistry();
|
||||||
|
try {
|
||||||
|
cr.registerComponent(sessionFactory, KeycloakSessionFactory.class);
|
||||||
|
} catch (UnsupportedOperationException | CacheConfigurationException ex) {
|
||||||
|
if (cr.getComponent(KeycloakSessionFactory.class) != sessionFactory) {
|
||||||
|
throw ex;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
55
pom.xml
55
pom.xml
|
@ -41,56 +41,58 @@
|
||||||
|
|
||||||
<product.build-time>${timestamp}</product.build-time>
|
<product.build-time>${timestamp}</product.build-time>
|
||||||
|
|
||||||
<wildfly.version>14.0.1.Final</wildfly.version>
|
<wildfly.version>15.0.1.Final</wildfly.version>
|
||||||
<wildfly.build-tools.version>1.2.10.Final</wildfly.build-tools.version>
|
<wildfly.build-tools.version>1.2.10.Final</wildfly.build-tools.version>
|
||||||
<eap.version>7.2.0.GA-redhat-00005</eap.version>
|
<eap.version>7.2.0.GA-redhat-00005</eap.version>
|
||||||
<eap.build-tools.version>1.2.10.Final</eap.build-tools.version>
|
<eap.build-tools.version>1.2.10.Final</eap.build-tools.version>
|
||||||
<wildfly.core.version>6.0.2.Final</wildfly.core.version>
|
<wildfly.core.version>7.0.0.Final</wildfly.core.version>
|
||||||
|
|
||||||
<jboss.as.version>7.2.0.Final</jboss.as.version>
|
<jboss.as.version>7.2.0.Final</jboss.as.version>
|
||||||
|
|
||||||
|
<!-- Versions used mostly for Undertow server, aligned with WildFly -->
|
||||||
<jboss.aesh.version>0.66.19</jboss.aesh.version>
|
<jboss.aesh.version>0.66.19</jboss.aesh.version>
|
||||||
<aesh.version>1.7</aesh.version>
|
<aesh.version>1.8</aesh.version>
|
||||||
<aesh.readline.version>1.10</aesh.readline.version>
|
<aesh.readline.version>1.11</aesh.readline.version>
|
||||||
<apache.httpcomponents.version>4.5.2</apache.httpcomponents.version>
|
<apache.httpcomponents.version>4.5.4</apache.httpcomponents.version>
|
||||||
<apache.httpcomponents.httpcore.version>4.4.4</apache.httpcomponents.httpcore.version>
|
<apache.httpcomponents.httpcore.version>4.4.5</apache.httpcomponents.httpcore.version>
|
||||||
<apache.mime4j.version>0.6</apache.mime4j.version>
|
<apache.mime4j.version>0.6</apache.mime4j.version>
|
||||||
<jboss.dmr.version>1.5.0.Final</jboss.dmr.version>
|
<jboss.dmr.version>1.5.0.Final</jboss.dmr.version>
|
||||||
<bouncycastle.version>1.60</bouncycastle.version>
|
<bouncycastle.version>1.60</bouncycastle.version>
|
||||||
<cxf.version>3.2.0</cxf.version>
|
<cxf.version>3.2.5-jbossorg-1</cxf.version>
|
||||||
<dom4j.version>1.6.1</dom4j.version>
|
<dom4j.version>2.1.1</dom4j.version>
|
||||||
<github.relaxng.version>2011.1</github.relaxng.version>
|
<github.relaxng.version>2.3.1</github.relaxng.version>
|
||||||
<h2.version>1.4.193</h2.version>
|
<h2.version>1.4.193</h2.version>
|
||||||
<javax.persistence.version>2.2</javax.persistence.version>
|
<javax.persistence.version>2.2</javax.persistence.version>
|
||||||
<hibernate.core.version>5.3.6.Final</hibernate.core.version>
|
<hibernate.core.version>5.3.7.Final</hibernate.core.version>
|
||||||
<hibernate.c3p0.version>5.3.6.Final</hibernate.c3p0.version>
|
<hibernate.c3p0.version>5.3.7.Final</hibernate.c3p0.version>
|
||||||
<infinispan.version>9.3.1.Final</infinispan.version>
|
<infinispan.version>9.4.3.Final</infinispan.version>
|
||||||
<jackson.version>2.9.5</jackson.version>
|
<jackson.version>2.9.5</jackson.version>
|
||||||
<javax.mail.version>1.6.1</javax.mail.version>
|
<javax.mail.version>1.6.2</javax.mail.version>
|
||||||
<jboss.logging.version>3.3.2.Final</jboss.logging.version>
|
<jboss.logging.version>3.3.2.Final</jboss.logging.version>
|
||||||
<jboss.logging.tools.version>2.1.0.Final</jboss.logging.tools.version>
|
<jboss.logging.tools.version>2.1.0.Final</jboss.logging.tools.version>
|
||||||
<jboss.logging.tools.wf8.version>1.2.0.Final</jboss.logging.tools.wf8.version>
|
<jboss.logging.tools.wf8.version>1.2.0.Final</jboss.logging.tools.wf8.version>
|
||||||
<jboss-jaxrs-api_2.1_spec>1.0.1.Final</jboss-jaxrs-api_2.1_spec>
|
<jboss-jaxrs-api_2.1_spec>1.0.2.Final</jboss-jaxrs-api_2.1_spec>
|
||||||
<jboss-transaction-api_1.2_spec>1.1.1.Final</jboss-transaction-api_1.2_spec>
|
<jboss-transaction-api_1.2_spec>1.1.1.Final</jboss-transaction-api_1.2_spec>
|
||||||
<jboss.spec.javax.xml.bind.jboss-jaxb-api_2.3_spec.version>1.0.1.Final</jboss.spec.javax.xml.bind.jboss-jaxb-api_2.3_spec.version>
|
<jboss.spec.javax.xml.bind.jboss-jaxb-api_2.3_spec.version>1.0.1.Final</jboss.spec.javax.xml.bind.jboss-jaxb-api_2.3_spec.version>
|
||||||
<jboss.spec.javax.servlet.jsp.jboss-jsp-api_2.3_spec.version>1.0.3.Final</jboss.spec.javax.servlet.jsp.jboss-jsp-api_2.3_spec.version>
|
<jboss.spec.javax.servlet.jsp.jboss-jsp-api_2.3_spec.version>1.0.3.Final</jboss.spec.javax.servlet.jsp.jboss-jsp-api_2.3_spec.version>
|
||||||
<log4j.version>1.2.17</log4j.version>
|
<log4j.version>1.2.17</log4j.version>
|
||||||
<resteasy.version>3.6.1.Final</resteasy.version>
|
<resteasy.version>3.6.2.Final</resteasy.version>
|
||||||
<resteasy.undertow.version>3.6.1.Final</resteasy.undertow.version>
|
<resteasy.undertow.version>3.6.2.Final</resteasy.undertow.version>
|
||||||
<owasp.html.sanitizer.version>20180219.1</owasp.html.sanitizer.version>
|
<owasp.html.sanitizer.version>20180219.1</owasp.html.sanitizer.version>
|
||||||
<slf4j-api.version>1.7.22</slf4j-api.version>
|
<slf4j-api.version>1.7.22</slf4j-api.version>
|
||||||
<slf4j.version>1.7.22</slf4j.version>
|
<slf4j.version>1.7.22</slf4j.version>
|
||||||
<sun.istack.version>3.0.5</sun.istack.version>
|
<sun.istack.version>3.0.7</sun.istack.version>
|
||||||
<sun.jaxb.version>2.3.0</sun.jaxb.version>
|
<sun.jaxb.version>2.3.1</sun.jaxb.version>
|
||||||
<sun.xsom.version>20140925</sun.xsom.version>
|
<org.glassfish.jaxb.xsom.version>2.3.1</org.glassfish.jaxb.xsom.version>
|
||||||
<undertow.version>2.0.13.Final</undertow.version>
|
<undertow.version>2.0.15.Final</undertow.version>
|
||||||
<elytron.version>1.6.0.Final</elytron.version>
|
<elytron.version>1.7.0.Final</elytron.version>
|
||||||
<elytron.undertow-server.version>1.2.3.Final</elytron.undertow-server.version>
|
<elytron.undertow-server.version>1.3.0.Final</elytron.undertow-server.version>
|
||||||
<woodstox.version>5.0.3</woodstox.version>
|
<woodstox.version>5.0.3</woodstox.version>
|
||||||
<xmlsec.version>2.1.2</xmlsec.version>
|
<xmlsec.version>2.1.2</xmlsec.version>
|
||||||
<glassfish.json.version>1.1.2</glassfish.json.version>
|
<glassfish.json.version>1.1.2</glassfish.json.version>
|
||||||
<wildfly.common.version>1.4.0.Final</wildfly.common.version>
|
<wildfly.common.version>1.4.0.Final</wildfly.common.version>
|
||||||
<picketbox.version>5.0.3.Final</picketbox.version>
|
<picketbox.version>5.0.3.Final</picketbox.version>
|
||||||
|
<google.guava.version>25.0-jre</google.guava.version>
|
||||||
|
|
||||||
<!-- Authorization Drools Policy Provider -->
|
<!-- Authorization Drools Policy Provider -->
|
||||||
<version.org.drools>7.11.0.Final</version.org.drools>
|
<version.org.drools>7.11.0.Final</version.org.drools>
|
||||||
|
@ -104,9 +106,6 @@
|
||||||
<google.zxing.version>3.2.1</google.zxing.version>
|
<google.zxing.version>3.2.1</google.zxing.version>
|
||||||
<freemarker.version>2.3.26-incubating</freemarker.version>
|
<freemarker.version>2.3.26-incubating</freemarker.version>
|
||||||
|
|
||||||
<!-- Same version as ships with wildfly. -->
|
|
||||||
<google.guava.version>25.0-jre</google.guava.version>
|
|
||||||
|
|
||||||
<jetty9.version>9.1.0.v20131115</jetty9.version>
|
<jetty9.version>9.1.0.v20131115</jetty9.version>
|
||||||
<liquibase.version>3.5.5</liquibase.version>
|
<liquibase.version>3.5.5</liquibase.version>
|
||||||
<mysql.version>5.1.29</mysql.version>
|
<mysql.version>5.1.29</mysql.version>
|
||||||
|
@ -243,9 +242,9 @@
|
||||||
<version>${sun.jaxb.version}</version>
|
<version>${sun.jaxb.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.sun.xsom</groupId>
|
<groupId>org.glassfish.jaxb</groupId>
|
||||||
<artifactId>xsom</artifactId>
|
<artifactId>xsom</artifactId>
|
||||||
<version>${sun.xsom.version}</version>
|
<version>${org.glassfish.jaxb.xsom.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.bouncycastle</groupId>
|
<groupId>org.bouncycastle</groupId>
|
||||||
|
@ -561,7 +560,7 @@
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>dom4j</groupId>
|
<groupId>org.dom4j</groupId>
|
||||||
<artifactId>dom4j</artifactId>
|
<artifactId>dom4j</artifactId>
|
||||||
<version>${dom4j.version}</version>
|
<version>${dom4j.version}</version>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
|
|
|
@ -528,8 +528,7 @@ After you build the distribution, you run this command to setup servers and run
|
||||||
-Dauth.server.log.check=false \
|
-Dauth.server.log.check=false \
|
||||||
-Dfrontend.console.output=true \
|
-Dfrontend.console.output=true \
|
||||||
-Dtest=org.keycloak.testsuite.cluster.**.*Test clean install
|
-Dtest=org.keycloak.testsuite.cluster.**.*Test clean install
|
||||||
|
|
||||||
|
|
||||||
### Cluster tests with Keycloak on embedded undertow
|
### Cluster tests with Keycloak on embedded undertow
|
||||||
|
|
||||||
mvn -f testsuite/integration-arquillian/tests/base/pom.xml \
|
mvn -f testsuite/integration-arquillian/tests/base/pom.xml \
|
||||||
|
@ -541,6 +540,9 @@ After you build the distribution, you run this command to setup servers and run
|
||||||
-Dfrontend.console.output=true \
|
-Dfrontend.console.output=true \
|
||||||
-Dtest=org.keycloak.testsuite.cluster.**.*Test clean install
|
-Dtest=org.keycloak.testsuite.cluster.**.*Test clean install
|
||||||
|
|
||||||
|
Note that after update, you might encounter `org.infinispan.commons.CacheException: Initial state transfer timed out for cache org.infinispan.CONFIG`
|
||||||
|
error in some environments. This can be fixed by adding `-Djava.net.preferIPv4Stack=true` parameter to the command above.
|
||||||
|
|
||||||
#### Run cluster tests from IDE on embedded undertow
|
#### Run cluster tests from IDE on embedded undertow
|
||||||
|
|
||||||
The test uses Undertow loadbalancer on `http://localhost:8180` and two embedded backend Undertow servers with Keycloak on `http://localhost:8181` and `http://localhost:8182` .
|
The test uses Undertow loadbalancer on `http://localhost:8180` and two embedded backend Undertow servers with Keycloak on `http://localhost:8181` and `http://localhost:8182` .
|
||||||
|
@ -582,6 +584,13 @@ For an example of a test, see [org.keycloak.testsuite.crossdc.ActionTokenCrossDC
|
||||||
The cross DC requires setting a profile specifying used cache server by specifying
|
The cross DC requires setting a profile specifying used cache server by specifying
|
||||||
`cache-server-infinispan` or `cache-server-jdg` profile in maven.
|
`cache-server-infinispan` or `cache-server-jdg` profile in maven.
|
||||||
|
|
||||||
|
Since JDG does not distribute `infinispan-server` zip artifact anymore, for `cache-server-jdg` profile it is
|
||||||
|
necessary to download the artifact and install it to local Maven repository. For JDG 7.3.0, the command is the following:
|
||||||
|
|
||||||
|
mvn install:install-file \
|
||||||
|
-DgroupId=org.infinispan.server -DartifactId=infinispan-server -Dpackaging=zip -Dclassifier=bin -DgeneratePom=true \
|
||||||
|
-Dversion=9.4.6.Final-redhat-00002 -Dfile=jboss-datagrid-7.3.0-server.zip
|
||||||
|
|
||||||
#### Run Cross-DC Tests from Maven
|
#### Run Cross-DC Tests from Maven
|
||||||
|
|
||||||
a) Prepare the environment. Compile the infinispan server and eventually Keycloak on JBoss server.
|
a) Prepare the environment. Compile the infinispan server and eventually Keycloak on JBoss server.
|
||||||
|
|
|
@ -42,8 +42,8 @@
|
||||||
<app.server>undertow</app.server>
|
<app.server>undertow</app.server>
|
||||||
|
|
||||||
<!-- Wildfly deprecated versions -->
|
<!-- Wildfly deprecated versions -->
|
||||||
<wildfly.deprecated.version>13.0.0.Final</wildfly.deprecated.version>
|
<wildfly.deprecated.version>14.0.1.Final</wildfly.deprecated.version>
|
||||||
<wildfly.deprecated.wildfly.core.version>5.0.0.Final</wildfly.deprecated.wildfly.core.version>
|
<wildfly.deprecated.wildfly.core.version>6.0.2.Final</wildfly.deprecated.wildfly.core.version>
|
||||||
<wildfly.deprecated.arquillian.wildfly.container>2.1.0.Final</wildfly.deprecated.arquillian.wildfly.container>
|
<wildfly.deprecated.arquillian.wildfly.container>2.1.0.Final</wildfly.deprecated.arquillian.wildfly.container>
|
||||||
|
|
||||||
<!--component versions-->
|
<!--component versions-->
|
||||||
|
@ -59,7 +59,7 @@
|
||||||
<selenium.version>3.14.0</selenium.version>
|
<selenium.version>3.14.0</selenium.version>
|
||||||
<arquillian-drone.version>2.5.1</arquillian-drone.version>
|
<arquillian-drone.version>2.5.1</arquillian-drone.version>
|
||||||
<arquillian-graphene.version>2.3.2</arquillian-graphene.version>
|
<arquillian-graphene.version>2.3.2</arquillian-graphene.version>
|
||||||
<arquillian-wildfly-container.version>2.1.0.Final</arquillian-wildfly-container.version>
|
<arquillian-wildfly-container.version>2.1.1.Final</arquillian-wildfly-container.version>
|
||||||
<arquillian-wls-container.version>1.0.1.Final</arquillian-wls-container.version>
|
<arquillian-wls-container.version>1.0.1.Final</arquillian-wls-container.version>
|
||||||
<arquillian-container-karaf.version>2.2.0.Final</arquillian-container-karaf.version>
|
<arquillian-container-karaf.version>2.2.0.Final</arquillian-container-karaf.version>
|
||||||
<arquillian-infinispan-container.version>1.2.0.Beta2</arquillian-infinispan-container.version>
|
<arquillian-infinispan-container.version>1.2.0.Beta2</arquillian-infinispan-container.version>
|
||||||
|
|
|
@ -69,6 +69,8 @@ import java.util.Arrays;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
import org.xnio.Options;
|
||||||
|
import org.xnio.SslClientAuthMode;
|
||||||
|
|
||||||
public class KeycloakOnUndertow implements DeployableContainer<KeycloakOnUndertowConfiguration> {
|
public class KeycloakOnUndertow implements DeployableContainer<KeycloakOnUndertowConfiguration> {
|
||||||
|
|
||||||
|
@ -195,6 +197,7 @@ public class KeycloakOnUndertow implements DeployableContainer<KeycloakOnUnderto
|
||||||
undertow.start(Undertow.builder()
|
undertow.start(Undertow.builder()
|
||||||
.addHttpListener(configuration.getBindHttpPort(), configuration.getBindAddress())
|
.addHttpListener(configuration.getBindHttpPort(), configuration.getBindAddress())
|
||||||
.addHttpsListener(configuration.getBindHttpsPort(), configuration.getBindAddress(), TLSUtils.initializeTLS())
|
.addHttpsListener(configuration.getBindHttpsPort(), configuration.getBindAddress(), TLSUtils.initializeTLS())
|
||||||
|
.setSocketOption(Options.SSL_CLIENT_AUTH_MODE, SslClientAuthMode.REQUESTED)
|
||||||
.setWorkerThreads(configuration.getWorkerThreads())
|
.setWorkerThreads(configuration.getWorkerThreads())
|
||||||
.setIoThreads(configuration.getWorkerThreads() / 8)
|
.setIoThreads(configuration.getWorkerThreads() / 8)
|
||||||
);
|
);
|
||||||
|
|
|
@ -46,7 +46,7 @@
|
||||||
|
|
||||||
<!-- cache server versions -->
|
<!-- cache server versions -->
|
||||||
<!--<infinispan.version>8.2.8.Final</infinispan.version>--><!-- Use same infinspan-server version as our version -->
|
<!--<infinispan.version>8.2.8.Final</infinispan.version>--><!-- Use same infinspan-server version as our version -->
|
||||||
<jdg.version>8.5.3.Final-redhat-00002</jdg.version><!-- JDG 7.2.3 -->
|
<jdg.version>9.4.6.Final-redhat-00002</jdg.version><!-- JDG 7.3.0 -->
|
||||||
|
|
||||||
<jboss.default.worker.io-threads>16</jboss.default.worker.io-threads>
|
<jboss.default.worker.io-threads>16</jboss.default.worker.io-threads>
|
||||||
<jboss.default.worker.task-max-threads>128</jboss.default.worker.task-max-threads>
|
<jboss.default.worker.task-max-threads>128</jboss.default.worker.task-max-threads>
|
||||||
|
|
|
@ -129,10 +129,10 @@ public class CookiesPathTest extends AbstractKeycloakTest {
|
||||||
// old cookie has been removed
|
// old cookie has been removed
|
||||||
// now we have AUTH_SESSION_ID, KEYCLOAK_IDENTITY, KEYCLOAK_SESSION
|
// now we have AUTH_SESSION_ID, KEYCLOAK_IDENTITY, KEYCLOAK_SESSION
|
||||||
Assert.assertThat(cookieStore.getCookies().stream().map(org.apache.http.cookie.Cookie::getName).collect(Collectors.toList()),
|
Assert.assertThat(cookieStore.getCookies().stream().map(org.apache.http.cookie.Cookie::getName).collect(Collectors.toList()),
|
||||||
Matchers.containsInAnyOrder("AUTH_SESSION_ID", "KEYCLOAK_IDENTITY", "KEYCLOAK_SESSION"));
|
Matchers.containsInAnyOrder("AUTH_SESSION_ID", "KEYCLOAK_IDENTITY", "KEYCLOAK_SESSION", "OAuth_Token_Request_State"));
|
||||||
|
|
||||||
// does each cookie's path end with "/"
|
// does each cookie's path end with "/"
|
||||||
cookieStore.getCookies().stream().map(org.apache.http.cookie.Cookie::getPath).forEach(path ->Assert.assertThat(path, Matchers.endsWith("/")));
|
cookieStore.getCookies().stream().filter(c -> !"OAuth_Token_Request_State".equals(c.getName())).map(org.apache.http.cookie.Cookie::getPath).forEach(path ->Assert.assertThat(path, Matchers.endsWith("/")));
|
||||||
|
|
||||||
// KEYCLOAK_SESSION should end by AUTH_SESSION_ID value
|
// KEYCLOAK_SESSION should end by AUTH_SESSION_ID value
|
||||||
String authSessionId = cookieStore.getCookies().stream().filter(c -> "AUTH_SESSION_ID".equals(c.getName())).findFirst().get().getValue();
|
String authSessionId = cookieStore.getCookies().stream().filter(c -> "AUTH_SESSION_ID".equals(c.getName())).findFirst().get().getValue();
|
||||||
|
@ -194,10 +194,10 @@ public class CookiesPathTest extends AbstractKeycloakTest {
|
||||||
// old cookie has been removed
|
// old cookie has been removed
|
||||||
// now we have AUTH_SESSION_ID, KEYCLOAK_IDENTITY, KEYCLOAK_SESSION, OAuth_Token_Request_State
|
// now we have AUTH_SESSION_ID, KEYCLOAK_IDENTITY, KEYCLOAK_SESSION, OAuth_Token_Request_State
|
||||||
Assert.assertThat(cookieStore.getCookies().stream().map(org.apache.http.cookie.Cookie::getName).collect(Collectors.toList()),
|
Assert.assertThat(cookieStore.getCookies().stream().map(org.apache.http.cookie.Cookie::getName).collect(Collectors.toList()),
|
||||||
Matchers.containsInAnyOrder("AUTH_SESSION_ID", "KEYCLOAK_IDENTITY", "KEYCLOAK_SESSION"));
|
Matchers.containsInAnyOrder("AUTH_SESSION_ID", "KEYCLOAK_IDENTITY", "KEYCLOAK_SESSION", "OAuth_Token_Request_State"));
|
||||||
|
|
||||||
// does each cookie's path end with "/"
|
// does each cookie's path end with "/"
|
||||||
cookieStore.getCookies().stream().map(org.apache.http.cookie.Cookie::getPath).forEach(path ->Assert.assertThat(path, Matchers.endsWith("/")));
|
cookieStore.getCookies().stream().filter(c -> !"OAuth_Token_Request_State".equals(c.getName())).map(org.apache.http.cookie.Cookie::getPath).forEach(path ->Assert.assertThat(path, Matchers.endsWith("/")));
|
||||||
|
|
||||||
// KEYCLOAK_SESSION should end by AUTH_SESSION_ID value
|
// KEYCLOAK_SESSION should end by AUTH_SESSION_ID value
|
||||||
String authSessionId = cookieStore.getCookies().stream().filter(c -> "AUTH_SESSION_ID".equals(c.getName())).findFirst().get().getValue();
|
String authSessionId = cookieStore.getCookies().stream().filter(c -> "AUTH_SESSION_ID".equals(c.getName())).findFirst().get().getValue();
|
||||||
|
|
|
@ -42,10 +42,6 @@
|
||||||
<module>springboot-tests</module>
|
<module>springboot-tests</module>
|
||||||
</modules>
|
</modules>
|
||||||
|
|
||||||
<properties>
|
|
||||||
<skip.unpack.test.resources>false</skip.unpack.test.resources>
|
|
||||||
</properties>
|
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
<pluginManagement>
|
<pluginManagement>
|
||||||
<plugins>
|
<plugins>
|
||||||
|
@ -59,7 +55,6 @@
|
||||||
<goal>unpack</goal>
|
<goal>unpack</goal>
|
||||||
</goals>
|
</goals>
|
||||||
<configuration>
|
<configuration>
|
||||||
<skip>${skip.unpack.test.resources}</skip>
|
|
||||||
<artifactItems>
|
<artifactItems>
|
||||||
<artifactItem>
|
<artifactItem>
|
||||||
<groupId>org.keycloak.testsuite</groupId>
|
<groupId>org.keycloak.testsuite</groupId>
|
||||||
|
|
|
@ -35,7 +35,7 @@
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<skip.add.user.json>true</skip.add.user.json>
|
<skip.add.user.json>true</skip.add.user.json>
|
||||||
<skip.unpack.test.resources>true</skip.unpack.test.resources>
|
<skip.copy.example.wars>true</skip.copy.example.wars>
|
||||||
<skip.rename.configs>false</skip.rename.configs>
|
<skip.rename.configs>false</skip.rename.configs>
|
||||||
|
|
||||||
<jbossHome>${project.build.directory}/keycloak-${project.version}</jbossHome>
|
<jbossHome>${project.build.directory}/keycloak-${project.version}</jbossHome>
|
||||||
|
|
|
@ -146,6 +146,7 @@
|
||||||
<examples.home>${project.build.directory}/examples</examples.home>
|
<examples.home>${project.build.directory}/examples</examples.home>
|
||||||
<examples.basedir>${keycloak-parent.basedir}/examples</examples.basedir> <!--keycloak/examples directory-->
|
<examples.basedir>${keycloak-parent.basedir}/examples</examples.basedir> <!--keycloak/examples directory-->
|
||||||
<examples.version.suffix>${project.version}</examples.version.suffix>
|
<examples.version.suffix>${project.version}</examples.version.suffix>
|
||||||
|
<skip.copy.example.wars>false</skip.copy.example.wars>
|
||||||
|
|
||||||
<browser>htmlUnit</browser>
|
<browser>htmlUnit</browser>
|
||||||
<webdriverDownloadBinaries>true</webdriverDownloadBinaries>
|
<webdriverDownloadBinaries>true</webdriverDownloadBinaries>
|
||||||
|
@ -247,6 +248,7 @@
|
||||||
<goal>copy</goal>
|
<goal>copy</goal>
|
||||||
</goals>
|
</goals>
|
||||||
<configuration>
|
<configuration>
|
||||||
|
<skip>${skip.copy.example.wars}</skip>
|
||||||
<artifactItems>
|
<artifactItems>
|
||||||
<artifactItem>
|
<artifactItem>
|
||||||
<groupId>org.keycloak.testsuite</groupId>
|
<groupId>org.keycloak.testsuite</groupId>
|
||||||
|
|
|
@ -67,7 +67,7 @@
|
||||||
<scope>compile</scope>
|
<scope>compile</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>dom4j</groupId>
|
<groupId>org.dom4j</groupId>
|
||||||
<artifactId>dom4j</artifactId>
|
<artifactId>dom4j</artifactId>
|
||||||
<scope>compile</scope>
|
<scope>compile</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
<!-- See src/resources/configuration/ReadMe.txt for how the configuration assembly works -->
|
<!-- See src/resources/configuration/ReadMe.txt for how the configuration assembly works -->
|
||||||
<config>
|
<config>
|
||||||
<extension-module>org.wildfly.extension.undertow</extension-module>
|
<extension-module>org.wildfly.extension.undertow</extension-module>
|
||||||
<subsystem xmlns="urn:jboss:domain:undertow:7.0" default-server="default-server" default-virtual-host="default-host" default-servlet-container="default" default-security-domain="other">
|
<subsystem xmlns="urn:jboss:domain:undertow:8.0" default-server="default-server" default-virtual-host="default-host" default-servlet-container="default" default-security-domain="other">
|
||||||
<buffer-cache name="default"/>
|
<buffer-cache name="default"/>
|
||||||
<server name="default-server">
|
<server name="default-server">
|
||||||
<?AJP?>
|
<?AJP?>
|
||||||
|
|
Loading…
Reference in a new issue