keycloak-aplcache
Changes
distribution/demo-dist/pom.xml 25(+25 -0)
wildfly/server-subsystem/pom.xml 17(+16 -1)
wildfly/server-subsystem/src/main/java/org/keycloak/subsystem/server/extension/JsonConfigConverter.java 2(+1 -1)
wildfly/server-subsystem/src/main/resources/default-config/keycloak-server-default-config.xml 1(+1 -0)
Details
distribution/demo-dist/pom.xml 25(+25 -0)
diff --git a/distribution/demo-dist/pom.xml b/distribution/demo-dist/pom.xml
index 187d62d..71a5a1a 100755
--- a/distribution/demo-dist/pom.xml
+++ b/distribution/demo-dist/pom.xml
@@ -202,6 +202,31 @@
</execution>
</executions>
</plugin>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>unpack</id>
+ <phase>compile</phase>
+ <goals>
+ <goal>unpack</goal>
+ </goals>
+ <configuration>
+ <artifactItems>
+ <artifactItem>
+ <groupId>org.keycloak</groupId>
+ <artifactId>keycloak-wildfly-server-subsystem</artifactId>
+ <version>${project.version}</version>
+ <type>jar</type>
+ <includes>default-config/*.xml</includes>
+ </artifactItem>
+ </artifactItems>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
</plugins>
</build>
diff --git a/distribution/demo-dist/src/main/xslt/standalone.xsl b/distribution/demo-dist/src/main/xslt/standalone.xsl
index db2247c..855efc0 100755
--- a/distribution/demo-dist/src/main/xslt/standalone.xsl
+++ b/distribution/demo-dist/src/main/xslt/standalone.xsl
@@ -1,19 +1,19 @@
<!--
- ~ 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.
- -->
+~ 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.
+-->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xalan="http://xml.apache.org/xalan"
@@ -42,7 +42,7 @@
<xsl:template match="//ds:datasources">
<xsl:copy>
<xsl:apply-templates select="node()[name(.)='datasource']"/>
- <datasource jndi-name="java:jboss/datasources/KeycloakDS" pool-name="KeycloakDS" use-java-context="true">
+ <datasource jndi-name="java:jboss/datasources/KeycloakDS" jta="false" pool-name="KeycloakDS" use-java-context="true">
<connection-url>jdbc:h2:${jboss.server.data.dir}/keycloak;AUTO_SERVER=TRUE</connection-url>
<driver>h2</driver>
<security>
@@ -57,68 +57,7 @@
<xsl:template match="//j:profile">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
- <subsystem xmlns="urn:jboss:domain:keycloak-server:1.1">
- <web-context>auth</web-context>
- <providers>
- <provider>classpath:${jboss.home.dir}/providers/*</provider>
- </providers>
- <master-realm-name>master</master-realm-name>
- <scheduled-task-interval>900</scheduled-task-interval>
- <theme>
- <staticMaxAge>2592000</staticMaxAge>
- <cacheThemes>true</cacheThemes>
- <cacheTemplates>true</cacheTemplates>
- <dir>${jboss.home.dir}/themes</dir>
- </theme>
- <spi name="eventsStore">
- <default-provider>jpa</default-provider>
- <provider name="jpa" enabled="true">
- <properties>
- <property name="exclude-events" value="["REFRESH_TOKEN"]"/>
- </properties>
- </provider>
- </spi>
- <spi name="realm">
- <default-provider>jpa</default-provider>
- </spi>
- <spi name="user">
- <default-provider>jpa</default-provider>
- </spi>
- <spi name="userCache">
- <provider name="default" enabled="true"/>
- </spi>
- <spi name="userSessionPersister">
- <default-provider>jpa</default-provider>
- </spi>
- <spi name="authorizationPersister">
- <default-provider>jpa</default-provider>
- </spi>
- <spi name="timer">
- <default-provider>basic</default-provider>
- </spi>
- <spi name="connectionsHttpClient">
- <provider name="default" enabled="true"/>
- </spi>
- <spi name="connectionsJpa">
- <provider name="default" enabled="true">
- <properties>
- <property name="dataSource" value="java:jboss/datasources/KeycloakDS"/>
- <property name="databaseSchema" value="update"/>
- </properties>
- </provider>
- </spi>
- <spi name="realmCache">
- <provider name="default" enabled="true"/>
- </spi>
- <spi name="connectionsInfinispan">
- <default-provider>default</default-provider>
- <provider name="default" enabled="true">
- <properties>
- <property name="cacheContainer" value="java:comp/env/infinispan/Keycloak"/>
- </properties>
- </provider>
- </spi>
- </subsystem>
+ <xsl:copy-of select="document('../../../target/dependency/default-config/keycloak-server-default-config.xml')"/>
<subsystem xmlns="urn:jboss:domain:keycloak:1.1"/>
<subsystem xmlns="urn:jboss:domain:keycloak-saml:1.1"/>
</xsl:copy>
diff --git a/distribution/server-overlay/cli/keycloak-install.cli b/distribution/server-overlay/cli/keycloak-install.cli
index c3ca492..c89859d 100644
--- a/distribution/server-overlay/cli/keycloak-install.cli
+++ b/distribution/server-overlay/cli/keycloak-install.cli
@@ -1,5 +1,5 @@
embed-server --server-config=standalone.xml
-/subsystem=datasources/data-source=KeycloakDS/:add(connection-url="jdbc:h2:${jboss.server.data.dir}/keycloak;AUTO_SERVER=TRUE",driver-name=h2,jndi-name=java:jboss/datasources/KeycloakDS,password=sa,user-name=sa,use-java-context=true)
+/subsystem=datasources/data-source=KeycloakDS/:add(connection-url="jdbc:h2:${jboss.server.data.dir}/keycloak;AUTO_SERVER=TRUE",jta=false,driver-name=h2,jndi-name=java:jboss/datasources/KeycloakDS,password=sa,user-name=sa,use-java-context=true)
/subsystem=infinispan/cache-container=keycloak:add(jndi-name="infinispan/Keycloak")
/subsystem=infinispan/cache-container=keycloak/local-cache=realms:add()
/subsystem=infinispan/cache-container=keycloak/local-cache=users:add()
@@ -30,3 +30,6 @@ embed-server --server-config=standalone.xml
/subsystem=keycloak-server/spi=realmCache/provider=default/:add(enabled=true)
/subsystem=keycloak-server/spi=connectionsInfinispan/:add(default-provider=default)
/subsystem=keycloak-server/spi=connectionsInfinispan/provider=default/:add(properties={cacheContainer => "java:comp/env/infinispan/Keycloak"},enabled=true)
+/subsystem=keycloak-server/spi=jta-lookup/:add
+/subsystem=keycloak-server/spi=jta-lookup/provider=jboss/:add(enabled=true)
+
diff --git a/distribution/server-overlay/cli/keycloak-install-ha.cli b/distribution/server-overlay/cli/keycloak-install-ha.cli
index f52bbc0..ddcefc4 100644
--- a/distribution/server-overlay/cli/keycloak-install-ha.cli
+++ b/distribution/server-overlay/cli/keycloak-install-ha.cli
@@ -1,5 +1,5 @@
embed-server --server-config=standalone-ha.xml
-/subsystem=datasources/data-source=KeycloakDS/:add(connection-url="jdbc:h2:${jboss.server.data.dir}/keycloak;AUTO_SERVER=TRUE",driver-name=h2,jndi-name=java:jboss/datasources/KeycloakDS,password=sa,user-name=sa,use-java-context=true)
+/subsystem=datasources/data-source=KeycloakDS/:add(connection-url="jdbc:h2:${jboss.server.data.dir}/keycloak;AUTO_SERVER=TRUE",jta=false,driver-name=h2,jndi-name=java:jboss/datasources/KeycloakDS,password=sa,user-name=sa,use-java-context=true)
/subsystem=infinispan/cache-container=keycloak:add(jndi-name="infinispan/Keycloak")
/subsystem=infinispan/cache-container=keycloak/transport=TRANSPORT:add(lock-timeout=60000)
/subsystem=infinispan/cache-container=keycloak/invalidation-cache=realms:add(mode="SYNC")
@@ -30,3 +30,5 @@ embed-server --server-config=standalone-ha.xml
/subsystem=keycloak-server/spi=realmCache/provider=default/:add(enabled=true)
/subsystem=keycloak-server/spi=connectionsInfinispan/:add(default-provider=default)
/subsystem=keycloak-server/spi=connectionsInfinispan/provider=default/:add(properties={cacheContainer => "java:comp/env/infinispan/Keycloak"},enabled=true)
+/subsystem=keycloak-server/spi=jta-lookup/:add
+/subsystem=keycloak-server/spi=jta-lookup/provider=jboss/:add(enabled=true)
wildfly/server-subsystem/pom.xml 17(+16 -1)
diff --git a/wildfly/server-subsystem/pom.xml b/wildfly/server-subsystem/pom.xml
index db0f3ca..05b0fc0 100755
--- a/wildfly/server-subsystem/pom.xml
+++ b/wildfly/server-subsystem/pom.xml
@@ -47,8 +47,23 @@
<include>**/*TestCase.java</include>
</includes>
</configuration>
- </plugin>
+ </plugin>
</plugins>
+ <filters>
+ <filter>src/main/config/default-server-subsys-config.properties</filter>
+ </filters>
+ <resources>
+ <resource>
+ <directory>src/main/resources</directory>
+ <filtering>true</filtering>
+ </resource>
+ </resources>
+ <testResources>
+ <testResource>
+ <directory>src/test/resources</directory>
+ <filtering>true</filtering>
+ </testResource>
+ </testResources>
</build>
<dependencies>
diff --git a/wildfly/server-subsystem/src/main/config/default-server-subsys-config.properties b/wildfly/server-subsystem/src/main/config/default-server-subsys-config.properties
new file mode 100644
index 0000000..afdebe2
--- /dev/null
+++ b/wildfly/server-subsystem/src/main/config/default-server-subsys-config.properties
@@ -0,0 +1,67 @@
+keycloak.server.subsys.default.config=\
+<subsystem xmlns="urn:jboss:domain:keycloak-server:1.1">\
+ <web-context>auth</web-context>\
+ <providers>\
+ <provider>classpath:${jboss.home.dir}/providers/*</provider>\
+ </providers>\
+ <master-realm-name>master</master-realm-name>\
+ <scheduled-task-interval>900</scheduled-task-interval>\
+ <theme>\
+ <staticMaxAge>2592000</staticMaxAge>\
+ <cacheThemes>true</cacheThemes>\
+ <cacheTemplates>true</cacheTemplates>\
+ <dir>${jboss.home.dir}/themes</dir>\
+ </theme>\
+ <spi name="eventsStore">\
+ <default-provider>jpa</default-provider>\
+ <provider name="jpa" enabled="true">\
+ <properties>\
+ <property name="exclude-events" value="["REFRESH_TOKEN"]"/>\
+ </properties>\
+ </provider>\
+ </spi>\
+ <spi name="realm">\
+ <default-provider>jpa</default-provider>\
+ </spi>\
+ <spi name="user">\
+ <default-provider>jpa</default-provider>\
+ </spi>\
+ <spi name="userCache">\
+ <provider name="default" enabled="true"/>\
+ </spi>\
+ <spi name="userSessionPersister">\
+ <default-provider>jpa</default-provider>\
+ </spi>\
+ <spi name="authorizationPersister">\
+ <default-provider>jpa</default-provider>\
+ </spi>\
+ <spi name="timer">\
+ <default-provider>basic</default-provider>\
+ </spi>\
+ <spi name="connectionsHttpClient">\
+ <provider name="default" enabled="true"/>\
+ </spi>\
+ <spi name="connectionsJpa">\
+ <provider name="default" enabled="true">\
+ <properties>\
+ <property name="dataSource" value="java:jboss/datasources/KeycloakDS"/>\
+ <property name="databaseSchema" value="update"/>\
+ </properties>\
+ </provider>\
+ </spi>\
+ <spi name="realmCache">\
+ <provider name="default" enabled="true"/>\
+ </spi>\
+ <spi name="connectionsInfinispan">\
+ <default-provider>default</default-provider>\
+ <provider name="default" enabled="true">\
+ <properties>\
+ <property name="cacheContainer" value="java:comp/env/infinispan/Keycloak"/>\
+ </properties>\
+ </provider>\
+ </spi>\
+ <spi name="jta-lookup">\
+ <default-provider>${keycloak.jta.lookup.provider:jboss}</default-provider>\
+ <provider name="jboss" enabled="true"/>\
+ </spi>\
+</subsystem>\
\ No newline at end of file
diff --git a/wildfly/server-subsystem/src/main/java/org/keycloak/subsystem/server/extension/JsonConfigConverter.java b/wildfly/server-subsystem/src/main/java/org/keycloak/subsystem/server/extension/JsonConfigConverter.java
index 95010cc..aa4d3f5 100644
--- a/wildfly/server-subsystem/src/main/java/org/keycloak/subsystem/server/extension/JsonConfigConverter.java
+++ b/wildfly/server-subsystem/src/main/java/org/keycloak/subsystem/server/extension/JsonConfigConverter.java
@@ -47,7 +47,7 @@ import static org.keycloak.subsystem.server.extension.ThemeResourceDefinition.WE
*/
public class JsonConfigConverter {
- private static final List<String> NON_SPI_LIST = new ArrayList();
+ private static final List<String> NON_SPI_LIST = new ArrayList<>();
static {
NON_SPI_LIST.add("providers");
diff --git a/wildfly/server-subsystem/src/main/resources/default-config/keycloak-server-default-config.xml b/wildfly/server-subsystem/src/main/resources/default-config/keycloak-server-default-config.xml
new file mode 100644
index 0000000..e520611
--- /dev/null
+++ b/wildfly/server-subsystem/src/main/resources/default-config/keycloak-server-default-config.xml
@@ -0,0 +1 @@
+${keycloak.server.subsys.default.config}
\ No newline at end of file
diff --git a/wildfly/server-subsystem/src/main/resources/subsystem-templates/keycloak-server.xml b/wildfly/server-subsystem/src/main/resources/subsystem-templates/keycloak-server.xml
index f2d4cd6..67bf03e 100644
--- a/wildfly/server-subsystem/src/main/resources/subsystem-templates/keycloak-server.xml
+++ b/wildfly/server-subsystem/src/main/resources/subsystem-templates/keycloak-server.xml
@@ -19,66 +19,5 @@
<!-- Template used by WildFly build when directed to include Keycloak subsystem in a configuration. -->
<config>
<extension-module>org.keycloak.keycloak-server-subsystem</extension-module>
- <subsystem xmlns="urn:jboss:domain:keycloak-server:1.1">
- <web-context>auth</web-context>
- <providers>
- <provider>classpath:${jboss.home.dir}/providers/*</provider>
- </providers>
- <master-realm-name>master</master-realm-name>
- <scheduled-task-interval>900</scheduled-task-interval>
- <theme>
- <staticMaxAge>2592000</staticMaxAge>
- <cacheThemes>true</cacheThemes>
- <cacheTemplates>true</cacheTemplates>
- <dir>${jboss.home.dir}/themes</dir>
- </theme>
- <spi name="eventsStore">
- <default-provider>jpa</default-provider>
- <provider name="jpa" enabled="true">
- <properties>
- <property name="exclude-events" value="["REFRESH_TOKEN"]"/>
- </properties>
- </provider>
- </spi>
- <spi name="realm">
- <default-provider>jpa</default-provider>
- </spi>
- <spi name="user">
- <default-provider>jpa</default-provider>
- </spi>
- <spi name="userCache">
- <provider name="default" enabled="true"/>
- </spi>
- <spi name="userSessionPersister">
- <default-provider>jpa</default-provider>
- </spi>
- <spi name="authorizationPersister">
- <default-provider>jpa</default-provider>
- </spi>
- <spi name="timer">
- <default-provider>basic</default-provider>
- </spi>
- <spi name="connectionsHttpClient">
- <provider name="default" enabled="true"/>
- </spi>
- <spi name="connectionsJpa">
- <provider name="default" enabled="true">
- <properties>
- <property name="dataSource" value="java:jboss/datasources/KeycloakDS"/>
- <property name="databaseSchema" value="update"/>
- </properties>
- </provider>
- </spi>
- <spi name="realmCache">
- <provider name="default" enabled="true"/>
- </spi>
- <spi name="connectionsInfinispan">
- <default-provider>default</default-provider>
- <provider name="default" enabled="true">
- <properties>
- <property name="cacheContainer" value="java:comp/env/infinispan/Keycloak"/>
- </properties>
- </provider>
- </spi>
- </subsystem>
+ ${keycloak.server.subsys.default.config}
</config>
diff --git a/wildfly/server-subsystem/src/test/java/org/keycloak/subsystem/server/extension/SubsystemParsingTestCase.java b/wildfly/server-subsystem/src/test/java/org/keycloak/subsystem/server/extension/SubsystemParsingTestCase.java
index ade4a05..0bc4110 100755
--- a/wildfly/server-subsystem/src/test/java/org/keycloak/subsystem/server/extension/SubsystemParsingTestCase.java
+++ b/wildfly/server-subsystem/src/test/java/org/keycloak/subsystem/server/extension/SubsystemParsingTestCase.java
@@ -41,6 +41,7 @@ public class SubsystemParsingTestCase extends AbstractSubsystemBaseTest {
protected Properties getResolvedProperties() {
Properties properties = new Properties();
properties.put("jboss.home.dir", System.getProperty("java.io.tmpdir"));
+ properties.put("keycloak.jta.lookup.provider", "jboss");
return properties;
}
diff --git a/wildfly/server-subsystem/src/test/resources/org/keycloak/subsystem/server/extension/keycloak-server-1.1.xml b/wildfly/server-subsystem/src/test/resources/org/keycloak/subsystem/server/extension/keycloak-server-1.1.xml
index 290d8b7..e520611 100644
--- a/wildfly/server-subsystem/src/test/resources/org/keycloak/subsystem/server/extension/keycloak-server-1.1.xml
+++ b/wildfly/server-subsystem/src/test/resources/org/keycloak/subsystem/server/extension/keycloak-server-1.1.xml
@@ -1,79 +1 @@
-<!--
-~ 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.
--->
-
-<subsystem xmlns="urn:jboss:domain:keycloak-server:1.1">
- <web-context>auth</web-context>
- <providers>
- <provider>classpath:${jboss.home.dir}/providers/*</provider>
- </providers>
- <master-realm-name>master</master-realm-name>
- <scheduled-task-interval>900</scheduled-task-interval>
- <theme>
- <staticMaxAge>2592000</staticMaxAge>
- <cacheThemes>true</cacheThemes>
- <cacheTemplates>true</cacheTemplates>
- <dir>${jboss.home.dir}/themes</dir>
- </theme>
- <spi name="eventsStore">
- <default-provider>jpa</default-provider>
- <provider name="jpa" enabled="true">
- <properties>
- <property name="exclude-events" value="["REFRESH_TOKEN"]"/>
- </properties>
- </provider>
- </spi>
- <spi name="realm">
- <default-provider>jpa</default-provider>
- </spi>
- <spi name="user">
- <default-provider>jpa</default-provider>
- </spi>
- <spi name="userCache">
- <provider name="default" enabled="true"/>
- </spi>
- <spi name="userSessionPersister">
- <default-provider>jpa</default-provider>
- </spi>
- <spi name="authorizationPersister">
- <default-provider>jpa</default-provider>
- </spi>
- <spi name="timer">
- <default-provider>basic</default-provider>
- </spi>
- <spi name="connectionsHttpClient">
- <provider name="default" enabled="true"/>
- </spi>
- <spi name="connectionsJpa">
- <provider name="default" enabled="true">
- <properties>
- <property name="dataSource" value="java:jboss/datasources/KeycloakDS"/>
- <property name="databaseSchema" value="update"/>
- </properties>
- </provider>
- </spi>
- <spi name="realmCache">
- <provider name="default" enabled="true"/>
- </spi>
- <spi name="connectionsInfinispan">
- <default-provider>default</default-provider>
- <provider name="default" enabled="true">
- <properties>
- <property name="cacheContainer" value="java:comp/env/infinispan/Keycloak"/>
- </properties>
- </provider>
- </spi>
-</subsystem>
\ No newline at end of file
+${keycloak.server.subsys.default.config}
\ No newline at end of file