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:
Hynek Mlnarik 2019-02-15 21:00:46 +01:00 committed by Stian Thorgersen
parent 99f8e5f808
commit 37ef47d6ab
22 changed files with 100 additions and 55 deletions

View file

@ -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?>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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?>

View file

@ -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 ***

View file

@ -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 ***

View file

@ -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 ***

View file

@ -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 ***

View file

@ -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) {

View file

@ -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
View file

@ -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>

View file

@ -529,7 +529,6 @@ 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
### 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.

View file

@ -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>

View file

@ -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)
); );

View file

@ -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>

View file

@ -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();

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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?>