keycloak-memoizeit
Changes
authz/policy/aggregate/src/main/resources/META-INF/services/org.keycloak.authorization.policy.provider.PolicyProviderFactory 19(+0 -19)
authz/policy/common/pom.xml 24(+21 -3)
authz/policy/common/src/main/java/org/keycloak/authorization/policy/provider/aggregated/AggregatePolicyAdminResource.java 26(+13 -13)
authz/policy/common/src/main/java/org/keycloak/authorization/policy/provider/aggregated/AggregatePolicyProvider.java 26(+13 -13)
authz/policy/common/src/main/java/org/keycloak/authorization/policy/provider/aggregated/AggregatePolicyProviderFactory.java 19(+18 -1)
authz/policy/common/src/main/java/org/keycloak/authorization/policy/provider/js/JSPolicyProvider.java 0(+0 -0)
authz/policy/common/src/main/java/org/keycloak/authorization/policy/provider/js/JSPolicyProviderFactory.java 0(+0 -0)
authz/policy/common/src/main/java/org/keycloak/authorization/policy/provider/resource/ResourcePolicyProvider.java 0(+0 -0)
authz/policy/common/src/main/java/org/keycloak/authorization/policy/provider/resource/ResourcePolicyProviderFactory.java 0(+0 -0)
authz/policy/common/src/main/java/org/keycloak/authorization/policy/provider/role/RolePolicyProvider.java 28(+14 -14)
authz/policy/common/src/main/java/org/keycloak/authorization/policy/provider/role/RolePolicyProviderFactory.java 26(+13 -13)
authz/policy/common/src/main/java/org/keycloak/authorization/policy/provider/scope/ScopePolicyProvider.java 0(+0 -0)
authz/policy/common/src/main/java/org/keycloak/authorization/policy/provider/scope/ScopePolicyProviderFactory.java 0(+0 -0)
authz/policy/common/src/main/java/org/keycloak/authorization/policy/provider/time/TimePolicyAdminResource.java 0(+0 -0)
authz/policy/common/src/main/java/org/keycloak/authorization/policy/provider/time/TimePolicyProvider.java 0(+0 -0)
authz/policy/common/src/main/java/org/keycloak/authorization/policy/provider/time/TimePolicyProviderFactory.java 0(+0 -0)
authz/policy/common/src/main/java/org/keycloak/authorization/policy/provider/user/UserPolicyProvider.java 31(+14 -17)
authz/policy/common/src/main/java/org/keycloak/authorization/policy/provider/user/UserPolicyProviderFactory.java 26(+13 -13)
authz/policy/common/src/main/resources/META-INF/services/org.keycloak.authorization.policy.provider.PolicyProviderFactory 26(+25 -1)
authz/policy/javascript/src/main/resources/META-INF/services/org.keycloak.authorization.policy.provider.PolicyProviderFactory 19(+0 -19)
authz/policy/pom.xml 8(+1 -7)
authz/policy/role/src/main/resources/META-INF/services/org.keycloak.authorization.policy.provider.PolicyProviderFactory 19(+0 -19)
authz/policy/scope/src/main/resources/META-INF/services/org.keycloak.authorization.policy.provider.PolicyProviderFactory 19(+0 -19)
authz/policy/time/src/main/resources/META-INF/services/org.keycloak.authorization.policy.provider.PolicyProviderFactory 19(+0 -19)
authz/policy/user/src/main/resources/META-INF/services/org.keycloak.authorization.policy.provider.PolicyProviderFactory 19(+0 -19)
dependencies/server-all/pom.xml 166(+93 -73)
distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/drools/main/module.xml 5(+3 -2)
distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-authz-policy-common/main/module.xml 32(+32 -0)
distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-authz-policy-drools/main/module.xml 0(+0 -0)
distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-services/main/module.xml 3(+2 -1)
distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak-authz/org/keycloak/keycloak-authz-policy-provider/main/module.xml 41(+0 -41)
distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak-authz/org/keycloak/keycloak-authz-server/main/module.xml 9(+0 -9)
pom.xml 27(+1 -26)
Details
authz/policy/pom.xml 8(+1 -7)
diff --git a/authz/policy/pom.xml b/authz/policy/pom.xml
index 64766a4..a867c64 100644
--- a/authz/policy/pom.xml
+++ b/authz/policy/pom.xml
@@ -18,14 +18,8 @@
<description>KeyCloak AuthZ: Provider Parent</description>
<modules>
- <module>user</module>
- <module>role</module>
+ <module>common</module>
<module>drools</module>
- <module>resource</module>
- <module>scope</module>
- <module>javascript</module>
- <module>time</module>
- <module>aggregate</module>
</modules>
</project>
\ No newline at end of file
dependencies/server-all/pom.xml 166(+93 -73)
diff --git a/dependencies/server-all/pom.xml b/dependencies/server-all/pom.xml
index f989be1..45887d1 100755
--- a/dependencies/server-all/pom.xml
+++ b/dependencies/server-all/pom.xml
@@ -31,6 +31,30 @@
<name>Keycloak Dependencies Server All</name>
<description />
+ <properties>
+ <!-- Drools dependencies versions -->
+ <version.org.eclipse.sisu>0.3.0.M1</version.org.eclipse.sisu>
+ <version.org.eclipse.aether>1.0.0.v20140518</version.org.eclipse.aether>
+ <version.org.apache.ant>1.8.3</version.org.apache.ant>
+ <version.org.antlr>3.5</version.org.antlr>
+ <version.aopalliance>1.0</version.aopalliance>
+ <version.org.apache.maven>3.2.5</version.org.apache.maven>
+ <version.org.mvel>2.2.8.Final</version.org.mvel>
+ <version.org.sonatype.plexus.plexus-cipher>1.7</version.org.sonatype.plexus.plexus-cipher>
+ <version.org.codehaus.plexus.plexus-classworlds>2.5.2</version.org.codehaus.plexus.plexus-classworlds>
+ <version.org.codehaus.plexus.plexus-component-annotations>1.5.5</version.org.codehaus.plexus.plexus-component-annotations>
+ <version.org.codehaus.plexus.plexus-interpolation>1.21</version.org.codehaus.plexus.plexus-interpolation>
+ <version.org.codehaus.plexus.plexus-sec-dispatcher>1.3</version.org.codehaus.plexus.plexus-sec-dispatcher>
+ <version.org.codehaus.plexus.plexus-utils>3.0.20</version.org.codehaus.plexus.plexus-utils>
+ <version.org.apache.maven.wagon>2.6</version.org.apache.maven.wagon>
+ <version.com.thoughtworks.xstream>1.4.7</version.com.thoughtworks.xstream>
+ <version.com.google.guava>13.0.1</version.com.google.guava>
+ <version.org.eclipse.jdt.core.compiler>4.4.2</version.org.eclipse.jdt.core.compiler>
+ <version.com.lowagie>2.1.2</version.com.lowagie>
+ <version.org.sonatype.sisu>3.2.3</version.org.sonatype.sisu>
+ <version.com.google.inject.extensions.guice-servlet>3.0</version.com.google.inject.extensions.guice-servlet>
+ </properties>
+
<dependencies>
<dependency>
<groupId>org.keycloak</groupId>
@@ -89,37 +113,7 @@
<!-- Built-in Authorization Policy Providers -->
<dependency>
<groupId>org.keycloak</groupId>
- <artifactId>keycloak-authz-policy-resource</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.keycloak</groupId>
- <artifactId>keycloak-authz-policy-scope</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.keycloak</groupId>
- <artifactId>keycloak-authz-policy-user</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.keycloak</groupId>
- <artifactId>keycloak-authz-policy-role</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.keycloak</groupId>
- <artifactId>keycloak-authz-policy-js</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.keycloak</groupId>
- <artifactId>keycloak-authz-policy-time</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.keycloak</groupId>
- <artifactId>keycloak-authz-policy-aggregate</artifactId>
+ <artifactId>keycloak-authz-policy-common</artifactId>
<version>${project.version}</version>
</dependency>
@@ -137,6 +131,12 @@
<dependency>
<groupId>org.kie</groupId>
<artifactId>kie-ci</artifactId>
+ <exclusions>
+ <exclusion>
+ <groupId>org.sonatype.sisu</groupId>
+ <artifactId>sisu-guice</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
<groupId>org.kie</groupId>
@@ -153,202 +153,217 @@
<dependency>
<groupId>org.eclipse.aether</groupId>
<artifactId>aether-api</artifactId>
- <version>1.0.0.v20140518</version>
+ <version>${version.org.eclipse.aether}</version>
</dependency>
<dependency>
<groupId>org.eclipse.aether</groupId>
<artifactId>aether-connector-basic</artifactId>
- <version>1.0.0.v20140518</version>
+ <version>${version.org.eclipse.aether}</version>
</dependency>
<dependency>
<groupId>org.eclipse.aether</groupId>
<artifactId>aether-spi</artifactId>
- <version>1.0.0.v20140518</version>
+ <version>${version.org.eclipse.aether}</version>
</dependency>
<dependency>
<groupId>org.eclipse.aether</groupId>
<artifactId>aether-impl</artifactId>
- <version>1.0.0.v20140518</version>
+ <version>${version.org.eclipse.aether}</version>
</dependency>
<dependency>
<groupId>org.eclipse.aether</groupId>
<artifactId>aether-transport-file</artifactId>
- <version>1.0.0.v20140518</version>
+ <version>${version.org.eclipse.aether}</version>
</dependency>
<dependency>
<groupId>org.eclipse.aether</groupId>
<artifactId>aether-transport-http</artifactId>
- <version>1.0.0.v20140518</version>
+ <version>${version.org.eclipse.aether}</version>
</dependency>
<dependency>
<groupId>org.eclipse.aether</groupId>
<artifactId>aether-transport-wagon</artifactId>
- <version>1.0.0.v20140518</version>
+ <version>${version.org.eclipse.aether}</version>
</dependency>
<dependency>
<groupId>org.eclipse.aether</groupId>
<artifactId>aether-util</artifactId>
- <version>1.0.0.v20140518</version>
+ <version>${version.org.eclipse.aether}</version>
</dependency>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
- <version>1.8.2</version>
+ <version>${version.org.apache.ant}</version>
</dependency>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant-launcher</artifactId>
- <version>1.8.2</version>
+ <version>${version.org.apache.ant}</version>
</dependency>
<dependency>
<groupId>org.antlr</groupId>
<artifactId>antlr-runtime</artifactId>
- <version>3.5</version>
+ <version>${version.org.antlr}</version>
</dependency>
<dependency>
<groupId>aopalliance</groupId>
<artifactId>aopalliance</artifactId>
- <version>1.0</version>
+ <version>${version.aopalliance}</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-aether-provider</artifactId>
- <version>3.2.2</version>
+ <version>${version.org.apache.maven}</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-artifact</artifactId>
- <version>3.2.2</version>
+ <version>${version.org.apache.maven}</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-compat</artifactId>
- <version>3.2.2</version>
+ <version>${version.org.apache.maven}</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-core</artifactId>
- <version>3.2.2</version>
+ <version>${version.org.apache.maven}</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-model</artifactId>
- <version>3.2.2</version>
+ <version>${version.org.apache.maven}</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-model-builder</artifactId>
- <version>3.2.2</version>
+ <version>${version.org.apache.maven}</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
- <version>3.2.2</version>
+ <version>${version.org.apache.maven}</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-repository-metadata</artifactId>
- <version>3.2.2</version>
+ <version>${version.org.apache.maven}</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-settings</artifactId>
- <version>3.2.2</version>
+ <version>${version.org.apache.maven}</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-settings-builder</artifactId>
- <version>3.2.2</version>
+ <version>${version.org.apache.maven}</version>
</dependency>
<dependency>
<groupId>org.mvel</groupId>
<artifactId>mvel2</artifactId>
- <version>2.2.4.Final</version>
+ <version>${version.org.mvel}</version>
</dependency>
<dependency>
<groupId>org.eclipse.sisu</groupId>
<artifactId>org.eclipse.sisu.inject</artifactId>
- <version>0.0.0.M5</version>
+ <version>${version.org.eclipse.sisu}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>com.google.inject</groupId>
+ <artifactId>guice</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>com.google.inject.extensions</groupId>
+ <artifactId>guice-servlet</artifactId>
+ <version>${version.com.google.inject.extensions.guice-servlet}</version>
</dependency>
<dependency>
<groupId>org.eclipse.sisu</groupId>
<artifactId>org.eclipse.sisu.plexus</artifactId>
- <version>0.0.0.M5</version>
+ <version>${version.org.eclipse.sisu}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.sonatype.sisu</groupId>
+ <artifactId>sisu-guice</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
<groupId>org.sonatype.plexus</groupId>
<artifactId>plexus-cipher</artifactId>
- <version>1.4</version>
+ <version>${version.org.sonatype.plexus.plexus-cipher}</version>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-classworlds</artifactId>
- <version>2.5.1</version>
+ <version>${version.org.codehaus.plexus.plexus-classworlds}</version>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-component-annotations</artifactId>
- <version>1.5.5</version>
+ <version>${version.org.codehaus.plexus.plexus-component-annotations}</version>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-interpolation</artifactId>
- <version>1.19</version>
+ <version>${version.org.codehaus.plexus.plexus-interpolation}</version>
</dependency>
<dependency>
<groupId>org.sonatype.plexus</groupId>
<artifactId>plexus-sec-dispatcher</artifactId>
- <version>1.3</version>
+ <version>${version.org.codehaus.plexus.plexus-sec-dispatcher}</version>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-utils</artifactId>
- <version>3.0.17</version>
+ <version>${version.org.codehaus.plexus.plexus-utils}</version>
</dependency>
<dependency>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-http</artifactId>
- <version>2.0</version>
+ <version>${version.org.apache.maven.wagon}</version>
</dependency>
<dependency>
<groupId>org.apache.maven.wagon</groupId>
- <artifactId>wagon-http-shared4</artifactId>
- <version>2.0</version>
+ <artifactId>wagon-http-shared</artifactId>
+ <version>${version.org.apache.maven.wagon}</version>
</dependency>
<dependency>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-provider-api</artifactId>
- <version>1.0</version>
+ <version>${version.org.apache.maven.wagon}</version>
</dependency>
<dependency>
<groupId>com.thoughtworks.xstream</groupId>
<artifactId>xstream</artifactId>
- <version>1.4.7</version>
+ <version>${version.com.thoughtworks.xstream}</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
- <version>13.0.1</version>
+ <version>${version.com.google.guava}</version>
</dependency>
<dependency>
<groupId>org.eclipse.jdt.core.compiler</groupId>
<artifactId>ecj</artifactId>
- <version>4.3.1</version>
+ <version>${version.org.eclipse.jdt.core.compiler}</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
- <version>4.3.6</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
- <version>4.3.3</version>
</dependency>
<dependency>
<groupId>com.lowagie</groupId>
<artifactId>itext</artifactId>
- <version>2.1.2</version>
+ <version>${version.com.lowagie}</version>
<exclusions>
<exclusion>
<groupId>bouncycastle</groupId>
@@ -358,12 +373,17 @@
<groupId>bouncycastle</groupId>
<artifactId>bcprov-jdk14</artifactId>
</exclusion>
+ <exclusion>
+ <groupId>org.sonatype.sisu</groupId>
+ <artifactId>sisu-guice</artifactId>
+ </exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.sonatype.sisu</groupId>
<artifactId>sisu-guice</artifactId>
- <version>3.1.0</version>
+ <version>${version.org.sonatype.sisu}</version>
+ <classifier>no_aop</classifier>
</dependency>
</dependencies>
diff --git a/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-authz-policy-common/main/module.xml b/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-authz-policy-common/main/module.xml
new file mode 100644
index 0000000..ced09b5
--- /dev/null
+++ b/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-authz-policy-common/main/module.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright 2016 Red Hat, Inc. and/or its affiliates
+ ~ and other contributors as indicated by the @author tags.
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ ~
+ -->
+<module xmlns="urn:jboss:module:1.3" name="org.keycloak.keycloak-authz-policy-common">
+ <resources>
+ <artifact name="${org.keycloak:keycloak-authz-policy-common}"/>
+ </resources>
+ <dependencies>
+ <module name="javax.api"/>
+ <module name="javax.ws.rs.api"/>
+ <module name="org.keycloak.keycloak-core"/>
+ <module name="org.keycloak.keycloak-common"/>
+ <module name="org.keycloak.keycloak-server-spi"/>
+ <module name="org.keycloak.keycloak-services"/>
+ </dependencies>
+
+</module>
diff --git a/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-services/main/module.xml b/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-services/main/module.xml
index dea3d84..42042e6 100755
--- a/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-services/main/module.xml
+++ b/distribution/feature-packs/server-feature-pack/src/main/resources/modules/system/layers/keycloak/org/keycloak/keycloak-services/main/module.xml
@@ -45,7 +45,8 @@
<module name="org.keycloak.keycloak-wildfly-extensions" services="import"/>
<!-- Authorization -->
- <module name="org.keycloak.keycloak-authz-server" services="import"/>
+ <module name="org.keycloak.keycloak-authz-policy-common" services="import"/>
+ <module name="org.keycloak.keycloak-authz-policy-drools" services="import"/>
<module name="org.freemarker"/>
<module name="javax.ws.rs.api"/>
diff --git a/distribution/server-dist/src/main/modules/layers.conf b/distribution/server-dist/src/main/modules/layers.conf
index afb3024..74f4485 100644
--- a/distribution/server-dist/src/main/modules/layers.conf
+++ b/distribution/server-dist/src/main/modules/layers.conf
@@ -1 +1 @@
-layers=keycloak,keycloak-authz
\ No newline at end of file
+layers=keycloak
\ No newline at end of file
diff --git a/distribution/server-overlay/assembly.xml b/distribution/server-overlay/assembly.xml
index 3c6c25d..325cadf 100755
--- a/distribution/server-overlay/assembly.xml
+++ b/distribution/server-overlay/assembly.xml
@@ -37,6 +37,7 @@
<include>org/liquibase/**</include>
<include>org/mongodb/**</include>
<include>org/twitter4j/**</include>
+ <include>org/drools/**</include>
<include>sun/jdk/jgss/**</include>
</includes>
</fileSet>
pom.xml 27(+1 -26)
diff --git a/pom.xml b/pom.xml
index 0e2b3ff..1b2dd37 100755
--- a/pom.xml
+++ b/pom.xml
@@ -1010,32 +1010,7 @@
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
- <artifactId>keycloak-authz-policy-resource</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.keycloak</groupId>
- <artifactId>keycloak-authz-policy-scope</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.keycloak</groupId>
- <artifactId>keycloak-authz-policy-identity</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.keycloak</groupId>
- <artifactId>keycloak-authz-policy-js</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.keycloak</groupId>
- <artifactId>keycloak-authz-policy-time</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.keycloak</groupId>
- <artifactId>keycloak-authz-policy-aggregate</artifactId>
+ <artifactId>keycloak-authz-policy-common</artifactId>
<version>${project.version}</version>
</dependency>
diff --git a/testsuite/integration/src/test/java/org/keycloak/testsuite/KeycloakServer.java b/testsuite/integration/src/test/java/org/keycloak/testsuite/KeycloakServer.java
index 6cb3f7c..7791c91 100755
--- a/testsuite/integration/src/test/java/org/keycloak/testsuite/KeycloakServer.java
+++ b/testsuite/integration/src/test/java/org/keycloak/testsuite/KeycloakServer.java
@@ -22,7 +22,9 @@ import io.undertow.servlet.Servlets;
import io.undertow.servlet.api.DefaultServletConfig;
import io.undertow.servlet.api.DeploymentInfo;
import io.undertow.servlet.api.FilterInfo;
+import io.undertow.servlet.api.ServletInfo;
import org.jboss.logging.Logger;
+import org.jboss.resteasy.plugins.server.servlet.HttpServlet30Dispatcher;
import org.jboss.resteasy.plugins.server.undertow.UndertowJaxrsServer;
import org.jboss.resteasy.spi.ResteasyDeployment;
import org.keycloak.models.KeycloakSession;
@@ -37,6 +39,7 @@ import org.keycloak.testsuite.util.cli.TestsuiteCLI;
import org.keycloak.util.JsonSerialization;
import javax.servlet.DispatcherType;
+import javax.ws.rs.core.Application;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
@@ -309,7 +312,17 @@ public class KeycloakServer {
di.setDefaultServletConfig(new DefaultServletConfig(true));
+ ServletInfo restEasyDispatcher = Servlets.servlet("Keycloak REST Interface", HttpServlet30Dispatcher.class);
+
+ restEasyDispatcher.addInitParam("resteasy.servlet.mapping.prefix", "/");
+ restEasyDispatcher.setAsyncSupported(true);
+
+ di.addServlet(restEasyDispatcher);
+
FilterInfo filter = Servlets.filter("SessionFilter", KeycloakSessionServletFilter.class);
+
+ filter.setAsyncSupported(true);
+
di.addFilter(filter);
di.addFilterUrlMapping("SessionFilter", "/*", DispatcherType.REQUEST);