keycloak-uncached
Changes
audit/api/pom.xml 2(+1 -1)
audit/email/pom.xml 2(+1 -1)
audit/jboss-logging/pom.xml 2(+1 -1)
audit/jpa/pom.xml 2(+1 -1)
audit/mongo/pom.xml 2(+1 -1)
audit/pom.xml 2(+1 -1)
audit/tests/pom.xml 2(+1 -1)
authentication/authentication-picketlink/src/main/java/org/keycloak/authentication/picketlink/PicketlinkAuthenticationProvider.java 10(+8 -2)
authentication/pom.xml 2(+1 -1)
core/pom.xml 2(+1 -1)
core-jaxrs/pom.xml 2(+1 -1)
distribution/appliance-dist/pom.xml 2(+1 -1)
distribution/as7-adapter-zip/pom.xml 2(+1 -1)
distribution/modules/pom.xml 2(+1 -1)
distribution/pom.xml 2(+1 -1)
distribution/src-dist/pom.xml 2(+1 -1)
distribution/war-dist/pom.xml 2(+1 -1)
distribution/war-zip/pom.xml 2(+1 -1)
docbook/pom.xml 2(+1 -1)
docbook/reference/en/en-US/modules/server-installation.xml 314(+177 -137)
examples/cors/pom.xml 2(+1 -1)
examples/demo-template/pom.xml 2(+1 -1)
examples/js-console/pom.xml 2(+1 -1)
examples/pom.xml 2(+1 -1)
examples/providers/pom.xml 2(+1 -1)
export-import/pom.xml 2(+1 -1)
forms/account-api/pom.xml 2(+1 -1)
forms/account-freemarker/pom.xml 2(+1 -1)
forms/common-freemarker/pom.xml 2(+1 -1)
forms/common-themes/pom.xml 2(+1 -1)
forms/common-themes/src/main/resources/theme/admin/base/resources/js/controllers/applications.js 12(+7 -5)
forms/common-themes/src/main/resources/theme/admin/base/resources/partials/application-installation.html 2(+1 -1)
forms/common-themes/src/main/resources/theme/common/keycloak/resources/lib/filesaver/FileSaver.js 241(+241 -0)
forms/email-api/pom.xml 2(+1 -1)
forms/email-freemarker/pom.xml 2(+1 -1)
forms/login-api/pom.xml 2(+1 -1)
forms/login-freemarker/pom.xml 2(+1 -1)
forms/pom.xml 2(+1 -1)
integration/adapter-core/pom.xml 2(+1 -1)
integration/as7-eap6/adapter/pom.xml 2(+1 -1)
integration/installed/pom.xml 2(+1 -1)
integration/js/pom.xml 2(+1 -1)
integration/pom.xml 2(+1 -1)
integration/tomcat7/adapter/pom.xml 2(+1 -1)
integration/undertow/pom.xml 2(+1 -1)
integration/wildfly-adapter/pom.xml 2(+1 -1)
model/api/pom.xml 2(+1 -1)
model/invalidation-cache/pom.xml 2(+1 -1)
model/jpa/pom.xml 2(+1 -1)
model/jpa/src/main/java/org/keycloak/models/jpa/entities/ClientUserSessionAssociationEntity.java 2(+2 -0)
model/mongo/pom.xml 2(+1 -1)
model/pom.xml 2(+1 -1)
model/tests/pom.xml 2(+1 -1)
picketlink/pom.xml 2(+1 -1)
pom.xml 2(+1 -1)
project-integrations/pom.xml 2(+1 -1)
server/pom.xml 19(+1 -18)
services/pom.xml 8(+1 -7)
social/core/pom.xml 2(+1 -1)
social/facebook/pom.xml 2(+1 -1)
social/github/pom.xml 2(+1 -1)
social/google/pom.xml 2(+1 -1)
social/pom.xml 2(+1 -1)
social/twitter/pom.xml 2(+1 -1)
testsuite/integration/pom.xml 2(+1 -1)
testsuite/performance/pom.xml 2(+1 -1)
testsuite/pom.xml 2(+1 -1)
timer/api/pom.xml 2(+1 -1)
timer/basic/pom.xml 2(+1 -1)
timer/pom.xml 2(+1 -1)
Details
audit/api/pom.xml 2(+1 -1)
diff --git a/audit/api/pom.xml b/audit/api/pom.xml
index 024bd42..c9c56b1 100755
--- a/audit/api/pom.xml
+++ b/audit/api/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>keycloak-audit-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
audit/email/pom.xml 2(+1 -1)
diff --git a/audit/email/pom.xml b/audit/email/pom.xml
index 6152372..e8545eb 100755
--- a/audit/email/pom.xml
+++ b/audit/email/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>keycloak-audit-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
audit/jboss-logging/pom.xml 2(+1 -1)
diff --git a/audit/jboss-logging/pom.xml b/audit/jboss-logging/pom.xml
index 4299995..b4c6487 100755
--- a/audit/jboss-logging/pom.xml
+++ b/audit/jboss-logging/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>keycloak-audit-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
audit/jpa/pom.xml 2(+1 -1)
diff --git a/audit/jpa/pom.xml b/audit/jpa/pom.xml
index 5301ec8..d124c39 100755
--- a/audit/jpa/pom.xml
+++ b/audit/jpa/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>keycloak-audit-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/audit/jpa/src/main/java/org/keycloak/audit/jpa/JpaAuditProviderFactory.java b/audit/jpa/src/main/java/org/keycloak/audit/jpa/JpaAuditProviderFactory.java
index 58ff08e..546b5e9 100644
--- a/audit/jpa/src/main/java/org/keycloak/audit/jpa/JpaAuditProviderFactory.java
+++ b/audit/jpa/src/main/java/org/keycloak/audit/jpa/JpaAuditProviderFactory.java
@@ -5,6 +5,7 @@ import org.keycloak.audit.AuditProvider;
import org.keycloak.audit.AuditProviderFactory;
import org.keycloak.audit.EventType;
import org.keycloak.provider.ProviderSession;
+import org.keycloak.util.JpaUtils;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
@@ -28,7 +29,7 @@ public class JpaAuditProviderFactory implements AuditProviderFactory {
@Override
public void init(Config.Scope config) {
- emf = Persistence.createEntityManagerFactory("jpa-keycloak-audit-store");
+ emf = Persistence.createEntityManagerFactory("jpa-keycloak-audit-store", JpaUtils.getHibernateProperties());
String[] include = config.getArray("include-events");
if (include != null) {
audit/mongo/pom.xml 2(+1 -1)
diff --git a/audit/mongo/pom.xml b/audit/mongo/pom.xml
index db8a5ed..481ba0a 100755
--- a/audit/mongo/pom.xml
+++ b/audit/mongo/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>keycloak-audit-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
audit/pom.xml 2(+1 -1)
diff --git a/audit/pom.xml b/audit/pom.xml
index 57f7dfb..b6ae9e3 100755
--- a/audit/pom.xml
+++ b/audit/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
audit/tests/pom.xml 2(+1 -1)
diff --git a/audit/tests/pom.xml b/audit/tests/pom.xml
index 575aa87..c3efa5a 100755
--- a/audit/tests/pom.xml
+++ b/audit/tests/pom.xml
@@ -5,7 +5,7 @@
<parent>
<artifactId>keycloak-audit-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/authentication/authentication-api/pom.xml b/authentication/authentication-api/pom.xml
index 219b6c2..8471acd 100755
--- a/authentication/authentication-api/pom.xml
+++ b/authentication/authentication-api/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>keycloak-authentication-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/authentication/authentication-model/pom.xml b/authentication/authentication-model/pom.xml
index c05cd37..711ea53 100755
--- a/authentication/authentication-model/pom.xml
+++ b/authentication/authentication-model/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>keycloak-authentication-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/authentication/authentication-picketlink/pom.xml b/authentication/authentication-picketlink/pom.xml
index 1c3ba9c..3ca1a10 100755
--- a/authentication/authentication-picketlink/pom.xml
+++ b/authentication/authentication-picketlink/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>keycloak-authentication-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/authentication/authentication-picketlink/src/main/java/org/keycloak/authentication/picketlink/PicketlinkAuthenticationProvider.java b/authentication/authentication-picketlink/src/main/java/org/keycloak/authentication/picketlink/PicketlinkAuthenticationProvider.java
index 615e2c7..b2310ed 100755
--- a/authentication/authentication-picketlink/src/main/java/org/keycloak/authentication/picketlink/PicketlinkAuthenticationProvider.java
+++ b/authentication/authentication-picketlink/src/main/java/org/keycloak/authentication/picketlink/PicketlinkAuthenticationProvider.java
@@ -51,9 +51,15 @@ public class PicketlinkAuthenticationProvider implements AuthenticationProvider
try {
User picketlinkUser = BasicModel.getUser(identityManager, username);
- return picketlinkUser == null ? null : new AuthUser(picketlinkUser.getId(), picketlinkUser.getLoginName(), getName())
+ if (picketlinkUser == null) {
+ return null;
+ }
+
+ String email = (picketlinkUser.getEmail() != null && picketlinkUser.getEmail().trim().length() > 0) ? picketlinkUser.getEmail() : null;
+
+ return new AuthUser(picketlinkUser.getId(), picketlinkUser.getLoginName(), getName())
.setName(picketlinkUser.getFirstName(), picketlinkUser.getLastName())
- .setEmail(picketlinkUser.getEmail())
+ .setEmail(email)
.setProviderName(getName());
} catch (IdentityManagementException ie) {
throw convertIDMException(ie);
authentication/pom.xml 2(+1 -1)
diff --git a/authentication/pom.xml b/authentication/pom.xml
index 16573af..f7ea914 100755
--- a/authentication/pom.xml
+++ b/authentication/pom.xml
@@ -5,7 +5,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
core/pom.xml 2(+1 -1)
diff --git a/core/pom.xml b/core/pom.xml
index e0c64d2..90bc87b 100755
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/core/src/main/java/org/keycloak/util/JpaUtils.java b/core/src/main/java/org/keycloak/util/JpaUtils.java
new file mode 100644
index 0000000..abb4efe
--- /dev/null
+++ b/core/src/main/java/org/keycloak/util/JpaUtils.java
@@ -0,0 +1,22 @@
+package org.keycloak.util;
+
+import java.util.Properties;
+
+/**
+ * @author <a href="mailto:mposolda@redhat.com">Marek Posolda</a>
+ */
+public class JpaUtils {
+
+ // Allows to override some properties in persistence.xml by system properties
+ public static Properties getHibernateProperties() {
+ Properties result = new Properties();
+
+ for (Object property : System.getProperties().keySet()) {
+ if (property.toString().startsWith("hibernate.")) {
+ String propValue = System.getProperty(property.toString());
+ result.put(property, propValue);
+ }
+ }
+ return result;
+ }
+}
core-jaxrs/pom.xml 2(+1 -1)
diff --git a/core-jaxrs/pom.xml b/core-jaxrs/pom.xml
index e4e8fea..c531f91 100755
--- a/core-jaxrs/pom.xml
+++ b/core-jaxrs/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
distribution/appliance-dist/pom.xml 2(+1 -1)
diff --git a/distribution/appliance-dist/pom.xml b/distribution/appliance-dist/pom.xml
index f0f03ce..3b5751a 100755
--- a/distribution/appliance-dist/pom.xml
+++ b/distribution/appliance-dist/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
distribution/as7-adapter-zip/pom.xml 2(+1 -1)
diff --git a/distribution/as7-adapter-zip/pom.xml b/distribution/as7-adapter-zip/pom.xml
index 041743a..46c76f7 100755
--- a/distribution/as7-adapter-zip/pom.xml
+++ b/distribution/as7-adapter-zip/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
diff --git a/distribution/eap6-adapter-zip/pom.xml b/distribution/eap6-adapter-zip/pom.xml
index cb7d209..a71f747 100755
--- a/distribution/eap6-adapter-zip/pom.xml
+++ b/distribution/eap6-adapter-zip/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
diff --git a/distribution/examples-docs-zip/pom.xml b/distribution/examples-docs-zip/pom.xml
index cc722c1..588b82a 100755
--- a/distribution/examples-docs-zip/pom.xml
+++ b/distribution/examples-docs-zip/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
distribution/modules/pom.xml 2(+1 -1)
diff --git a/distribution/modules/pom.xml b/distribution/modules/pom.xml
index 8db2ce4..f1711f7 100755
--- a/distribution/modules/pom.xml
+++ b/distribution/modules/pom.xml
@@ -30,7 +30,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
distribution/pom.xml 2(+1 -1)
diff --git a/distribution/pom.xml b/distribution/pom.xml
index 4338461..aee1513 100755
--- a/distribution/pom.xml
+++ b/distribution/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<name>Distribution</name>
distribution/src-dist/pom.xml 2(+1 -1)
diff --git a/distribution/src-dist/pom.xml b/distribution/src-dist/pom.xml
index 8ed55af..8f30994 100755
--- a/distribution/src-dist/pom.xml
+++ b/distribution/src-dist/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
diff --git a/distribution/theme-template-zip/pom.xml b/distribution/theme-template-zip/pom.xml
index 5421770..c8f24ed 100755
--- a/distribution/theme-template-zip/pom.xml
+++ b/distribution/theme-template-zip/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
distribution/war-dist/pom.xml 2(+1 -1)
diff --git a/distribution/war-dist/pom.xml b/distribution/war-dist/pom.xml
index 201405a..2e48008 100755
--- a/distribution/war-dist/pom.xml
+++ b/distribution/war-dist/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
distribution/war-zip/pom.xml 2(+1 -1)
diff --git a/distribution/war-zip/pom.xml b/distribution/war-zip/pom.xml
index c6cb908..d0ddb28 100755
--- a/distribution/war-zip/pom.xml
+++ b/distribution/war-zip/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
diff --git a/distribution/wildfly-adapter-zip/pom.xml b/distribution/wildfly-adapter-zip/pom.xml
index 4f027a7..c726cdb 100755
--- a/distribution/wildfly-adapter-zip/pom.xml
+++ b/distribution/wildfly-adapter-zip/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
docbook/pom.xml 2(+1 -1)
diff --git a/docbook/pom.xml b/docbook/pom.xml
index 62b7375..eaae737 100755
--- a/docbook/pom.xml
+++ b/docbook/pom.xml
@@ -6,7 +6,7 @@
<groupId>org.keycloak</groupId>
<artifactId>keycloak-reference-guide-${translation}</artifactId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<packaging>jdocbook</packaging>
<name>Keycloak Reference Guide (${translation})</name>
<description/>
diff --git a/docbook/reference/en/en-US/master.xml b/docbook/reference/en/en-US/master.xml
index 3e525cd..0fe428f 100755
--- a/docbook/reference/en/en-US/master.xml
+++ b/docbook/reference/en/en-US/master.xml
@@ -37,7 +37,7 @@
<bookinfo>
<title>Keycloak Reference Guide</title>
<subtitle>SSO for Web Apps and REST Services</subtitle>
- <releaseinfo>1.0-beta-3-SNAPSHOT</releaseinfo>
+ <releaseinfo>1.0-beta-4-SNAPSHOT</releaseinfo>
</bookinfo>
<toc/>
docbook/reference/en/en-US/modules/server-installation.xml 314(+177 -137)
diff --git a/docbook/reference/en/en-US/modules/server-installation.xml b/docbook/reference/en/en-US/modules/server-installation.xml
index 53cfaa2..769feec 100755
--- a/docbook/reference/en/en-US/modules/server-installation.xml
+++ b/docbook/reference/en/en-US/modules/server-installation.xml
@@ -8,11 +8,11 @@
<itemizedlist>
<listitem>
- keycloak-appliance-dist-all-1.0-beta-3-SNAPSHOT.zip
+ keycloak-appliance-dist-all-1.0-beta-4-SNAPSHOT.zip
</listitem>
<listitem>
- keycloak-war-dist-all-1.0-beta-3-SNAPSHOT.zip
+ keycloak-war-dist-all-1.0-beta-4-SNAPSHOT.zip
</listitem>
</itemizedlist>
@@ -31,7 +31,7 @@
<para>
<programlisting>
-keycloak-appliance-dist-all-1.0-beta-3-SNAPSHOT/
+keycloak-appliance-dist-all-1.0-beta-4-SNAPSHOT/
keycloak/
bin/
standalone.sh
@@ -42,9 +42,9 @@ keycloak-appliance-dist-all-1.0-beta-3-SNAPSHOT/
keycloak-server.json
themes/
adapters/
- keycloak-as7-adapter-dist-1.0-beta-3-SNAPSHOT.zip
- keycloak-eap6-adapter-dist-1.0-beta-3-SNAPSHOT.zip
- keycloak-wildfly-adapter-dist-1.0-beta-3-SNAPSHOT.zip
+ keycloak-as7-adapter-dist-1.0-beta-4-SNAPSHOT.zip
+ keycloak-eap6-adapter-dist-1.0-beta-4-SNAPSHOT.zip
+ keycloak-wildfly-adapter-dist-1.0-beta-4-SNAPSHOT.zip
examples/
docs/
</programlisting>
@@ -79,7 +79,7 @@ keycloak-appliance-dist-all-1.0-beta-3-SNAPSHOT/
</para>
<para>
<programlisting>
-keycloak-war-dist-all-1.0-beta-3-SNAPSHOT/
+keycloak-war-dist-all-1.0-beta-4-SNAPSHOT/
deployments/
auth-server.war/
keycloak-ds.xml
@@ -87,9 +87,9 @@ keycloak-war-dist-all-1.0-beta-3-SNAPSHOT/
keycloak-server.json
themes/
adapters/
- keycloak-as7-adapter-dist-1.0-beta-3-SNAPSHOT.zip
- keycloak-eap6-adapter-dist-1.0-beta-3-SNAPSHOT.zip
- keycloak-wildfly-adapter-dist-1.0-beta-3-SNAPSHOT.zip
+ keycloak-as7-adapter-dist-1.0-beta-4-SNAPSHOT.zip
+ keycloak-eap6-adapter-dist-1.0-beta-4-SNAPSHOT.zip
+ keycloak-wildfly-adapter-dist-1.0-beta-4-SNAPSHOT.zip
examples/
docs/
</programlisting>
@@ -101,7 +101,7 @@ keycloak-war-dist-all-1.0-beta-3-SNAPSHOT/
</para>
<para>
<programlisting>
- $ cd keycloak-war-dist-all-1.0-beta-3-SNAPSHOT
+ $ cd keycloak-war-dist-all-1.0-beta-4-SNAPSHOT
$ cp -r deployments $JBOSS_HOME/standalone
</programlisting>
</para>
@@ -337,167 +337,206 @@ keycloak-war-dist-all-1.0-beta-3-SNAPSHOT/
<warning>
<para>
Keycloak is not set up by default to handle SSL/HTTPS in either the
- war distribution or appliance. It is highly recommended that you enable it!
+ war distribution or appliance. It is highly recommended that you either enable SSL on the Keycloak server
+ itself or on a reverse proxy in front of the Keycloak server.
</para>
</warning>
- <para>
- The following things need to be done
- <itemizedlist>
-
- <listitem>
- Generate a self signed or third-party signed certificate and import it into a Java keystore
- using <literal>keytool</literal>.
- </listitem>
-
- <listitem>
- Enable JBoss or Wildfly to use this certificate and turn on SSL/HTTPS.
- </listitem>
- <listitem>
- Configure the Keycloak Server to enforce HTTPS connections.
- </listitem>
- </itemizedlist>
+ <para>
+ First enable SSL on Keycloak or on a reverse proxy in front of Keycloak. Then configure the Keycloak Server to enforce HTTPS connections.
</para>
+
<section>
- <title>Creating the Certificate and Java Keystore</title>
+ <title>Enable SSL on Keycloak</title>
<para>
- In order to allow HTTPS connections, you need to obtain a self signed or third-party signed certificate
- and import it into a Java keystore before you can enable HTTPS in the web container you are deploying
- the Keycloak Server to.
+ The following things need to be done
+ <itemizedlist>
+
+ <listitem>
+ Generate a self signed or third-party signed certificate and import it into a Java keystore
+ using <literal>keytool</literal>.
+ </listitem>
+
+ <listitem>
+ Enable JBoss or Wildfly to use this certificate and turn on SSL/HTTPS.
+ </listitem>
+ </itemizedlist>
</para>
<section>
- <title>Self Signed Certificate</title>
+ <title>Creating the Certificate and Java Keystore</title>
<para>
- In development, you will probably not have a third party signed certificate available to test
- a Keycloak deployment so you'll need to generate a self-signed on. Generate one is very easy
- to do with the <literal>keytool</literal> utility that comes with the Java jdk.
+ In order to allow HTTPS connections, you need to obtain a self signed or third-party signed certificate
+ and import it into a Java keystore before you can enable HTTPS in the web container you are deploying
+ the Keycloak Server to.
</para>
+ <section>
+ <title>Self Signed Certificate</title>
+ <para>
+ In development, you will probably not have a third party signed certificate available to test
+ a Keycloak deployment so you'll need to generate a self-signed on. Generate one is very easy
+ to do with the <literal>keytool</literal> utility that comes with the Java jdk.
+ </para>
+ <para>
+ <programlisting>
+ $ keytool -genkey -alias localhost -keyalg RSA -keystore keycloak.jks -validity 10950
+ Enter keystore password: secret
+ Re-enter new password: secret
+ What is your first and last name?
+ [Unknown]: localhost
+ What is the name of your organizational unit?
+ [Unknown]: Keycloak
+ What is the name of your organization?
+ [Unknown]: Red Hat
+ What is the name of your City or Locality?
+ [Unknown]: Westford
+ What is the name of your State or Province?
+ [Unknown]: MA
+ What is the two-letter country code for this unit?
+ [Unknown]: US
+ Is CN=localhost, OU=Keycloak, O=Test, L=Westford, ST=MA, C=US correct?
+ [no]: yes
+ </programlisting>
+ </para>
+ <para>
+ You should answer the <literal>What is your first and last name?</literal> question with
+ the DNS name of the machine you're installing the server on. For testing purposes,
+ <literal>localhost</literal> should be used. After executing this command, the
+ <literal>keycloak.jks</literal> file will be generated in the same directory as you executed
+ the <literal>keytool</literal> command in.
+ </para>
+ <para>
+ If you want a third-party signed certificate, but don't have one, you can obtain one for free
+ at <ulink url="http://cacert.org">cacert.org</ulink>. You'll have to do a little set up first
+ before doing this though.
+ </para>
+ <para>
+ The first thing to do is generate a Certificate Request:
+ <programlisting>
+ $ keytool -certreq -alias yourdomain -keystore keycloak.jks > keycloak.careq
+ </programlisting>
+ </para>
+ <para>
+ Where <literal>yourdomain</literal> is a DNS name for which this certificate is generated for.
+ Keytool generates the request:
+ <programlisting>
+ -----BEGIN NEW CERTIFICATE REQUEST-----
+ MIIC2jCCAcICAQAwZTELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAk1BMREwDwYDVQQHEwhXZXN0Zm9y
+ ZDEQMA4GA1UEChMHUmVkIEhhdDEQMA4GA1UECxMHUmVkIEhhdDESMBAGA1UEAxMJbG9jYWxob3N0
+ MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAr7kck2TaavlEOGbcpi9c0rncY4HhdzmY
+ Ax2nZfq1eZEaIPqI5aTxwQZzzLDK9qbeAd8Ji79HzSqnRDxNYaZu7mAYhFKHgixsolE3o5Yfzbw1
+ 29Rvy+eUVe+WZxv5oo9wolVVpdSINIMEL2LaFhtX/c1dqiqYVpfnvFshZQaIg2nL8juzZcBjj4as
+ H98gIS7khql/dkZKsw9NLvyxgJvp7PaXurX29fNf3ihG+oFrL22oFyV54BWWxXCKU/GPn61EGZGw
+ Ft2qSIGLdctpMD1aJR2bcnlhEjZKDksjQZoQ5YMXaAGkcYkG6QkgrocDE2YXDbi7GIdf9MegVJ35
+ 2DQMpwIDAQABoDAwLgYJKoZIhvcNAQkOMSEwHzAdBgNVHQ4EFgQUQwlZJBA+fjiDdiVzaO9vrE/i
+ n2swDQYJKoZIhvcNAQELBQADggEBAC5FRvMkhal3q86tHPBYWBuTtmcSjs4qUm6V6f63frhveWHf
+ PzRrI1xH272XUIeBk0gtzWo0nNZnf0mMCtUBbHhhDcG82xolikfqibZijoQZCiGiedVjHJFtniDQ
+ 9bMDUOXEMQ7gHZg5q6mJfNG9MbMpQaUVEEFvfGEQQxbiFK7hRWU8S23/d80e8nExgQxdJWJ6vd0X
+ MzzFK6j4Dj55bJVuM7GFmfdNC52pNOD5vYe47Aqh8oajHX9XTycVtPXl45rrWAH33ftbrS8SrZ2S
+ vqIFQeuLL3BaHwpl3t7j2lMWcK1p80laAxEASib/fAwrRHpLHBXRcq6uALUOZl4Alt8=
+ -----END NEW CERTIFICATE REQUEST-----
+ </programlisting>
+ </para>
+ <para>
+ Send this ca request to your CA. The CA will issue you a signed certificate and send it to you.
+ Before you import your new cert, you must obtain and import the root certificate of the CA.
+ You can download the cert from CA (ie.: root.crt) and import as follows:
+ <programlisting>
+ $ keytool -import -keystore keycloak.jks -file root.crt -alias root
+ </programlisting>
+ </para>
+ <para>
+ Last step is import your new CA generated certificate to your keystore:
+ <programlisting>
+ $ keytool -import -alias yourdomain -keystore keycloak.jks -file your-certificate.cer
+ </programlisting>
+ </para>
+ </section>
+ </section>
+ <section>
+ <title>Installing the keystore to WildFly</title>
<para>
-<programlisting>
-$ keytool -genkey -alias localhost -keyalg RSA -keystore keycloak.jks -validity 10950
- Enter keystore password: secret
- Re-enter new password: secret
- What is your first and last name?
- [Unknown]: localhost
- What is the name of your organizational unit?
- [Unknown]: Keycloak
- What is the name of your organization?
- [Unknown]: Red Hat
- What is the name of your City or Locality?
- [Unknown]: Westford
- What is the name of your State or Province?
- [Unknown]: MA
- What is the two-letter country code for this unit?
- [Unknown]: US
- Is CN=localhost, OU=Keycloak, O=Test, L=Westford, ST=MA, C=US correct?
- [no]: yes
-</programlisting>
+ Now that you have a Java keystore with the appropriate certificates, you need to configure your
+ Wildfly installation to use it. First step is to move the keystore file to a directory
+ you can reference in configuration. I like to put it in <literal>standalone/configuration</literal>.
+ Then you need to edit <literal>standalone/configuration/standalone.xml</literal> to enable SSL/HTTPS.
</para>
<para>
- You should answer the <literal>What is your first and last name?</literal> question with
- the DNS name of the machine you're installing the server on. For testing purposes,
- <literal>localhost</literal> should be used. After executing this command, the
- <literal>keycloak.jks</literal> file will be generated in the same directory as you executed
- the <literal>keytool</literal> command in.
+ To the <literal>security-realms</literal> element add:
+ <programlisting><![CDATA[<security-realm name="UndertowRealm">
+ <server-identities>
+ <ssl>
+ <keystore path="keycloak.jks" relative-to="jboss.server.config.dir" keystore-password="secret" />
+ </ssl>
+ </server-identities>
+ </security-realm>]]></programlisting>
</para>
<para>
- If you want a third-party signed certificate, but don't have one, you can obtain one for free
- at <ulink url="http://cacert.org">cacert.org</ulink>. You'll have to do a little set up first
- before doing this though.
+ Find the element <literal><server name="default-server"></literal> (it's a child element of <literal><subsystem xmlns="urn:jboss:domain:undertow:1.0"></literal>) and add:
+ <programlisting><![CDATA[<https-listener name="https" socket-binding="https" security-realm="UndertowRealm"/>
+ ]]></programlisting>
</para>
<para>
- The first thing to do is generate a Certificate Request:
-<programlisting>
-$ keytool -certreq -alias yourdomain -keystore keycloak.jks > keycloak.careq
-</programlisting>
+ Check the <ulink url="https://docs.jboss.org/author/display/WFLY8/Undertow+(web)+subsystem+configuration">Wildfly Undertow</ulink> documentation for more information on fine tuning the socket connections.
</para>
+ </section>
+ <section>
+ <title>Installing the keystore to JBoss EAP6/AS7</title>
<para>
- Where <literal>yourdomain</literal> is a DNS name for which this certificate is generated for.
- Keytool generates the request:
-<programlisting>
------BEGIN NEW CERTIFICATE REQUEST-----
-MIIC2jCCAcICAQAwZTELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAk1BMREwDwYDVQQHEwhXZXN0Zm9y
-ZDEQMA4GA1UEChMHUmVkIEhhdDEQMA4GA1UECxMHUmVkIEhhdDESMBAGA1UEAxMJbG9jYWxob3N0
-MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAr7kck2TaavlEOGbcpi9c0rncY4HhdzmY
-Ax2nZfq1eZEaIPqI5aTxwQZzzLDK9qbeAd8Ji79HzSqnRDxNYaZu7mAYhFKHgixsolE3o5Yfzbw1
-29Rvy+eUVe+WZxv5oo9wolVVpdSINIMEL2LaFhtX/c1dqiqYVpfnvFshZQaIg2nL8juzZcBjj4as
-H98gIS7khql/dkZKsw9NLvyxgJvp7PaXurX29fNf3ihG+oFrL22oFyV54BWWxXCKU/GPn61EGZGw
-Ft2qSIGLdctpMD1aJR2bcnlhEjZKDksjQZoQ5YMXaAGkcYkG6QkgrocDE2YXDbi7GIdf9MegVJ35
-2DQMpwIDAQABoDAwLgYJKoZIhvcNAQkOMSEwHzAdBgNVHQ4EFgQUQwlZJBA+fjiDdiVzaO9vrE/i
-n2swDQYJKoZIhvcNAQELBQADggEBAC5FRvMkhal3q86tHPBYWBuTtmcSjs4qUm6V6f63frhveWHf
-PzRrI1xH272XUIeBk0gtzWo0nNZnf0mMCtUBbHhhDcG82xolikfqibZijoQZCiGiedVjHJFtniDQ
-9bMDUOXEMQ7gHZg5q6mJfNG9MbMpQaUVEEFvfGEQQxbiFK7hRWU8S23/d80e8nExgQxdJWJ6vd0X
-MzzFK6j4Dj55bJVuM7GFmfdNC52pNOD5vYe47Aqh8oajHX9XTycVtPXl45rrWAH33ftbrS8SrZ2S
-vqIFQeuLL3BaHwpl3t7j2lMWcK1p80laAxEASib/fAwrRHpLHBXRcq6uALUOZl4Alt8=
------END NEW CERTIFICATE REQUEST-----
- </programlisting>
+ Now that you have a Java keystore with the appropriate certificates, you need to configure your
+ JBoss EAP6/AS7 installation to use it. First step is to move the keystore file to a directory
+ you can reference in configuration. I like to put it in <literal>standalone/configuration</literal>.
+ Then you need to edit <literal>standalone/configuration/standalone.xml</literal> to enable SSL/HTTPS.
</para>
<para>
- Send this ca request to your CA. The CA will issue you a signed certificate and send it to you.
- Before you import your new cert, you must obtain and import the root certificate of the CA.
- You can download the cert from CA (ie.: root.crt) and import as follows:
-<programlisting>
-$ keytool -import -keystore keycloak.jks -file root.crt -alias root
-</programlisting>
+<programlisting><![CDATA[<subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" native="false">
+ <connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http" redirect-port="443" />
+ <connector name="https" scheme="https" protocol="HTTP/1.1" socket-binding="https"
+ enable-lookups="false" secure="true">
+ <ssl name="localhost-ssl" password="secret" protocol="TLSv1"
+ key-alias="localhost" certificate-key-file="${jboss.server.config.dir}/keycloak.jks" />
+ </connector>
+ ...
+</subsystem>]]></programlisting>
</para>
<para>
- Last step is import your new CA generated certificate to your keystore:
-<programlisting>
-$ keytool -import -alias yourdomain -keystore keycloak.jks -file your-certificate.cer
-</programlisting>
+ Check the <ulink url="https://docs.jboss.org/author/display/AS71/SSL+setup+guide">JBoss</ulink> documentation for more information on fine tuning the socket connections.
</para>
</section>
</section>
+
<section>
- <title>Installing the keystore to WildFly</title>
+ <title>Enable SSL on a Reverse Proxy</title>
<para>
- Now that you have a Java keystore with the appropriate certificates, you need to configure your
- Wildfly installation to use it. First step is to move the keystore file to a directory
- you can reference in configuration. I like to put it in <literal>standalone/configuration</literal>.
- Then you need to edit <literal>standalone/configuration/standalone.xml</literal> to enable SSL/HTTPS.
+ Follow the documentation for your web server to enable SSL and configure reverse proxy for Keycloak.
+ It is important that you make sure the web server sets the <literal>X-Forwarded-For</literal> and
+ <literal>X-Forwarded-Proto</literal> headers on the requests made to Keycloak. Next you need to enable
+ <literal>proxy-address-forwarding</literal> on the Keycloak http connector. Assuming that your reverse
+ proxy doesn't use port 8443 for SSL you also need to configure what port http traffic is redirected to.
+ This is done by editing <literal>standalone/configuration/standalone.xml</literal>.
</para>
+ First add <literal>proxy-address-forwarding</literal> and <literal>redirect-socket</literal> to the <literal>http-listener</literal>
+ element:
<para>
- To the <literal>security-realms</literal> element add:
- <programlisting><![CDATA[<security-realm name="UndertowRealm">
- <server-identities>
- <ssl>
- <keystore path="keycloak.jks" relative-to="jboss.server.config.dir" keystore-password="secret" />
- </ssl>
- </server-identities>
-</security-realm>]]></programlisting>
- </para>
- <para>
- Find the element <literal><server name="default-server"></literal> (it's a child element of <literal><subsystem xmlns="urn:jboss:domain:undertow:1.0"></literal>) and add:
- <programlisting><![CDATA[<https-listener name="https" socket-binding="https" security-realm="UndertowRealm"/>
+<programlisting><![CDATA[<subsystem xmlns="urn:jboss:domain:undertow:1.1">
+ ...
+ <http-listener name="default" socket-binding="http" proxy-address-forwarding="true" redirect-socket="proxy-https"/>
+ ...
+</subsystem>
+]]></programlisting>
+ Then add a new <literal>socket-binding</literal> element to the <literal>socket-binding-group</literal> element:
+<programlisting><![CDATA[
+<socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">
+ ...
+ <socket-binding name="proxy-https" port="443"/>
+ ...
+</socket-binding-group>
]]></programlisting>
</para>
<para>
- Check the <ulink url="https://docs.jboss.org/author/display/WFLY8/Undertow+(web)+subsystem+configuration">Wildfly Undertow</ulink> documentation for more information on fine tuning the socket connections.
- </para>
- </section>
- <section>
- <title>Installing the keystore to JBoss EAP6/AS7</title>
- <para>
- Now that you have a Java keystore with the appropriate certificates, you need to configure your
- JBoss EAP6/AS7 installation to use it. First step is to move the keystore file to a directory
- you can reference in configuration. I like to put it in <literal>standalone/configuration</literal>.
- Then you need to edit <literal>standalone/configuration/standalone.xml</literal> to enable SSL/HTTPS.
- </para>
- <para>
-<programlisting><![CDATA[<subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" native="false">
- <connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http" redirect-port="443" />
- <connector name="https" scheme="https" protocol="HTTP/1.1" socket-binding="https"
- enable-lookups="false" secure="true">
- <ssl name="localhost-ssl" password="secret" protocol="TLSv1"
- key-alias="localhost" certificate-key-file="${jboss.server.config.dir}/keycloak.jks" />
- </connector>
- ...
-</subsystem>]]></programlisting>
- </para>
- <para>
- Check the <ulink url="https://docs.jboss.org/author/display/AS71/SSL+setup+guide">JBoss</ulink> documentation for more information on fine tuning the socket connections.
+ Check the <ulink url="https://docs.jboss.org/author/display/WFLY8/Undertow+(web)+subsystem+configuration">WildFly</ulink> documentation for more information.
</para>
</section>
+
<section>
<title>Enforce HTTPS For Server Connections</title>
<para>
@@ -519,6 +558,7 @@ $ keytool -import -alias yourdomain -keystore keycloak.jks -file your-certificat
</web-app>]]></programlisting>
</para>
</section>
+
<section>
<title>Enforce HTTPS at Realm Level</title>
<para>
diff --git a/docbook/reference/en/en-US/modules/themes.xml b/docbook/reference/en/en-US/modules/themes.xml
index c156452..bef7016 100755
--- a/docbook/reference/en/en-US/modules/themes.xml
+++ b/docbook/reference/en/en-US/modules/themes.xml
@@ -154,7 +154,7 @@
</para>
<para>
Keycloaks default account management provider is built on the FreeMarker template engine (<literal>forms/account-freemarker</literal>).
- To make sure your provider is loaded you will either need to delete <literal>standalone/deployments/auth-server.war/WEB-INF/lib/keycloak-account-freemarker-1.0-beta-3-SNAPSHOT.jar</literal>
+ To make sure your provider is loaded you will either need to delete <literal>standalone/deployments/auth-server.war/WEB-INF/lib/keycloak-account-freemarker-1.0-beta-4-SNAPSHOT.jar</literal>
or disable it with the system property <literal>org.keycloak.account.freemarker.FreeMarkerAccountProviderFactory</literal>.
</para>
</section>
@@ -167,7 +167,7 @@
</para>
<para>
Keycloaks default login forms provider is built on the FreeMarker template engine (<literal>forms/login-freemarker</literal>).
- To make sure your provider is loaded you will either need to delete <literal>standalone/deployments/auth-server.war/WEB-INF/lib/keycloak-login-freemarker-1.0-beta-3-SNAPSHOT.jar</literal>
+ To make sure your provider is loaded you will either need to delete <literal>standalone/deployments/auth-server.war/WEB-INF/lib/keycloak-login-freemarker-1.0-beta-4-SNAPSHOT.jar</literal>
or disable it with the system property <literal>org.keycloak.login.freemarker.FreeMarkerLoginFormsProviderFactory</literal>.
</para>
</section>
diff --git a/examples/cors/angular-product-app/pom.xml b/examples/cors/angular-product-app/pom.xml
index 9fe68fa..4ba033c 100755
--- a/examples/cors/angular-product-app/pom.xml
+++ b/examples/cors/angular-product-app/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/examples/cors/database-service/pom.xml b/examples/cors/database-service/pom.xml
index c219afb..e1c6dbf 100755
--- a/examples/cors/database-service/pom.xml
+++ b/examples/cors/database-service/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
examples/cors/pom.xml 2(+1 -1)
diff --git a/examples/cors/pom.xml b/examples/cors/pom.xml
index fb548c9..f553099 100755
--- a/examples/cors/pom.xml
+++ b/examples/cors/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<name>Examples</name>
diff --git a/examples/demo-template/admin-access-app/pom.xml b/examples/demo-template/admin-access-app/pom.xml
index 66df4f3..dc6a263 100755
--- a/examples/demo-template/admin-access-app/pom.xml
+++ b/examples/demo-template/admin-access-app/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/examples/demo-template/angular-product-app/pom.xml b/examples/demo-template/angular-product-app/pom.xml
index 39c1ac4..f4ccda7 100755
--- a/examples/demo-template/angular-product-app/pom.xml
+++ b/examples/demo-template/angular-product-app/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/examples/demo-template/customer-app/pom.xml b/examples/demo-template/customer-app/pom.xml
index eb11673..8dead54 100755
--- a/examples/demo-template/customer-app/pom.xml
+++ b/examples/demo-template/customer-app/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/examples/demo-template/customer-app-cli/pom.xml b/examples/demo-template/customer-app-cli/pom.xml
index 8db3d17..b2bbe84 100755
--- a/examples/demo-template/customer-app-cli/pom.xml
+++ b/examples/demo-template/customer-app-cli/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/examples/demo-template/customer-app-js/pom.xml b/examples/demo-template/customer-app-js/pom.xml
index a892df9..73e86b6 100755
--- a/examples/demo-template/customer-app-js/pom.xml
+++ b/examples/demo-template/customer-app-js/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/examples/demo-template/database-service/pom.xml b/examples/demo-template/database-service/pom.xml
index 1192abc..181cb20 100755
--- a/examples/demo-template/database-service/pom.xml
+++ b/examples/demo-template/database-service/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
examples/demo-template/pom.xml 2(+1 -1)
diff --git a/examples/demo-template/pom.xml b/examples/demo-template/pom.xml
index 51cf021..d0495a0 100755
--- a/examples/demo-template/pom.xml
+++ b/examples/demo-template/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<name>Examples</name>
diff --git a/examples/demo-template/product-app/pom.xml b/examples/demo-template/product-app/pom.xml
index b8c65c1..0a4aad6 100755
--- a/examples/demo-template/product-app/pom.xml
+++ b/examples/demo-template/product-app/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
@@ -29,11 +29,6 @@
<scope>provided</scope>
</dependency>
<dependency>
- <groupId>org.jboss.spec.javax.servlet</groupId>
- <artifactId>jboss-servlet-api_3.0_spec</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-core</artifactId>
<version>${project.version}</version>
diff --git a/examples/demo-template/third-party/pom.xml b/examples/demo-template/third-party/pom.xml
index a95259e..7207b8b 100755
--- a/examples/demo-template/third-party/pom.xml
+++ b/examples/demo-template/third-party/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/examples/demo-template/third-party-cdi/pom.xml b/examples/demo-template/third-party-cdi/pom.xml
index 4cc0c93..b8933b0 100755
--- a/examples/demo-template/third-party-cdi/pom.xml
+++ b/examples/demo-template/third-party-cdi/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
examples/js-console/pom.xml 2(+1 -1)
diff --git a/examples/js-console/pom.xml b/examples/js-console/pom.xml
index bbcf00f..28a991a 100755
--- a/examples/js-console/pom.xml
+++ b/examples/js-console/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/examples/js-console/src/main/webapp/index.html b/examples/js-console/src/main/webapp/index.html
index 468dfae..b0cbf39 100644
--- a/examples/js-console/src/main/webapp/index.html
+++ b/examples/js-console/src/main/webapp/index.html
@@ -48,6 +48,11 @@
}
function showExpires() {
+ if (!keycloak.tokenParsed) {
+ output("Not authenticated");
+ return;
+ }
+
var o = 'Token Expires:\t\t' + new Date(keycloak.tokenParsed.exp * 1000).toLocaleString() + '\n';
o += 'Token Expires in:\t' + Math.round(keycloak.tokenParsed.exp - new Date().getTime() / 1000) + ' seconds\n';
examples/pom.xml 2(+1 -1)
diff --git a/examples/pom.xml b/examples/pom.xml
index 950f5c0..c642443 100755
--- a/examples/pom.xml
+++ b/examples/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<name>Examples</name>
diff --git a/examples/providers/audit-listener-sysout/pom.xml b/examples/providers/audit-listener-sysout/pom.xml
index c57093b..d24711c 100755
--- a/examples/providers/audit-listener-sysout/pom.xml
+++ b/examples/providers/audit-listener-sysout/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>examples-providers-pom</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<name>Audit Listener System.out Example</name>
diff --git a/examples/providers/audit-provider-mem/pom.xml b/examples/providers/audit-provider-mem/pom.xml
index e0b1252..5cbc31a 100755
--- a/examples/providers/audit-provider-mem/pom.xml
+++ b/examples/providers/audit-provider-mem/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>examples-providers-pom</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<name>Audit Provider In-Mem Example</name>
diff --git a/examples/providers/authentication-properties/pom.xml b/examples/providers/authentication-properties/pom.xml
index 9794628..1fdd105 100755
--- a/examples/providers/authentication-properties/pom.xml
+++ b/examples/providers/authentication-properties/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>examples-providers-pom</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<name>Properties Authentication Provider Example</name>
examples/providers/pom.xml 2(+1 -1)
diff --git a/examples/providers/pom.xml b/examples/providers/pom.xml
index fed8a53..229057d 100755
--- a/examples/providers/pom.xml
+++ b/examples/providers/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>examples-pom</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<name>Provider Examples</name>
diff --git a/export-import/export-import-api/pom.xml b/export-import/export-import-api/pom.xml
index 4525d60..19db6e5 100755
--- a/export-import/export-import-api/pom.xml
+++ b/export-import/export-import-api/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-export-import-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/export-import/export-import-impl/pom.xml b/export-import/export-import-impl/pom.xml
index 2c27436..9b10c8a 100755
--- a/export-import/export-import-impl/pom.xml
+++ b/export-import/export-import-impl/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-export-import-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
export-import/pom.xml 2(+1 -1)
diff --git a/export-import/pom.xml b/export-import/pom.xml
index 4a0f1ca..b9a5a4d 100755
--- a/export-import/pom.xml
+++ b/export-import/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
forms/account-api/pom.xml 2(+1 -1)
diff --git a/forms/account-api/pom.xml b/forms/account-api/pom.xml
index 0a787f1..f2a9acd 100755
--- a/forms/account-api/pom.xml
+++ b/forms/account-api/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-forms-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
forms/account-freemarker/pom.xml 2(+1 -1)
diff --git a/forms/account-freemarker/pom.xml b/forms/account-freemarker/pom.xml
index 70bebd4..dcfb18d 100755
--- a/forms/account-freemarker/pom.xml
+++ b/forms/account-freemarker/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-forms-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
forms/common-freemarker/pom.xml 2(+1 -1)
diff --git a/forms/common-freemarker/pom.xml b/forms/common-freemarker/pom.xml
index 4e4924f..41a573b 100755
--- a/forms/common-freemarker/pom.xml
+++ b/forms/common-freemarker/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-forms-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
forms/common-themes/pom.xml 2(+1 -1)
diff --git a/forms/common-themes/pom.xml b/forms/common-themes/pom.xml
index dc497f1..74ee25e 100755
--- a/forms/common-themes/pom.xml
+++ b/forms/common-themes/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-forms-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/forms/common-themes/src/main/resources/theme/admin/base/resources/index.html b/forms/common-themes/src/main/resources/theme/admin/base/resources/index.html
index 459751c..006fe1c 100755
--- a/forms/common-themes/src/main/resources/theme/admin/base/resources/index.html
+++ b/forms/common-themes/src/main/resources/theme/admin/base/resources/index.html
@@ -21,6 +21,7 @@
<script src="lib/jquery/jquery.idletimeout.js" type="text/javascript"></script>
<script src="lib/angular/select2.js" type="text/javascript"></script>
<script src="lib/fileupload/angular-file-upload.min.js"></script>
+ <script src="lib/filesaver/FileSaver.js"></script>
<script src="js/keycloak.js" type="text/javascript"></script>
<script src="js/app.js" type="text/javascript"></script>
diff --git a/forms/common-themes/src/main/resources/theme/admin/base/resources/js/controllers/applications.js b/forms/common-themes/src/main/resources/theme/admin/base/resources/js/controllers/applications.js
index abcaefc..2671891 100755
--- a/forms/common-themes/src/main/resources/theme/admin/base/resources/js/controllers/applications.js
+++ b/forms/common-themes/src/main/resources/theme/admin/base/resources/js/controllers/applications.js
@@ -178,21 +178,23 @@ module.controller('ApplicationInstallationCtrl', function($scope, realm, applica
$scope.changeFormat = function() {
if ($scope.configFormat == "keycloak.json") {
var url = ApplicationInstallation.url({ realm: $routeParams.realm, application: $routeParams.application });
- var installation = $http.get(url).success(function(data) {
+ $http.get(url).success(function(data) {
var tmp = angular.fromJson(data);
$scope.installation = angular.toJson(tmp, true);
+ $scope.type = 'application/json';
})
- $scope.download = url;
} else if ($scope.configFormat == "Wildfly/JBoss Subsystem XML") {
var url = ApplicationInstallationJBoss.url({ realm: $routeParams.realm, application: $routeParams.application });
- var installation = $http.get(url).success(function(data) {
+ $http.get(url).success(function(data) {
$scope.installation = data;
+ $scope.type = 'text/xml';
})
- $scope.download = url;
}
-
};
+ $scope.download = function() {
+ saveAs(new Blob([$scope.installation], { type: $scope.type }), 'keycloak.json');
+ }
});
module.controller('ApplicationDetailCtrl', function($scope, realm, application, Application, $location, Dialog, Notifications) {
diff --git a/forms/common-themes/src/main/resources/theme/admin/base/resources/js/controllers/realm.js b/forms/common-themes/src/main/resources/theme/admin/base/resources/js/controllers/realm.js
index fc10a08..a18765f 100755
--- a/forms/common-themes/src/main/resources/theme/admin/base/resources/js/controllers/realm.js
+++ b/forms/common-themes/src/main/resources/theme/admin/base/resources/js/controllers/realm.js
@@ -615,7 +615,7 @@ module.controller('RealmSocialCtrl', function($scope, realm, Realm, serverInfo,
});
-module.controller('RealmTokenDetailCtrl', function($scope, Realm, realm, $http, $location, Dialog, Notifications, TimeUnit) {
+module.controller('RealmTokenDetailCtrl', function($scope, Realm, realm, $http, $location, $route, Dialog, Notifications, TimeUnit) {
console.log('RealmTokenDetailCtrl');
$scope.realm = realm;
@@ -650,7 +650,6 @@ module.controller('RealmTokenDetailCtrl', function($scope, Realm, realm, $http,
$scope.realm.accessCodeLifespanUserAction = TimeUnit.convert($scope.realm.accessCodeLifespanUserAction, from, to);
});
-
var oldCopy = angular.copy($scope.realm);
$scope.changed = false;
@@ -674,16 +673,14 @@ module.controller('RealmTokenDetailCtrl', function($scope, Realm, realm, $http,
realmCopy.accessCodeLifespan = TimeUnit.toSeconds($scope.realm.accessCodeLifespan, $scope.realm.accessCodeLifespanUnit)
realmCopy.accessCodeLifespanUserAction = TimeUnit.toSeconds($scope.realm.accessCodeLifespanUserAction, $scope.realm.accessCodeLifespanUserActionUnit)
- $scope.changed = false;
Realm.update(realmCopy, function () {
- $location.url("/realms/" + realm.realm + "/token-settings");
+ $route.reload();
Notifications.success("The changes have been saved to the realm.");
});
};
$scope.reset = function() {
- $scope.realm = angular.copy(oldCopy);
- $scope.changed = false;
+ $route.reload();
};
});
diff --git a/forms/common-themes/src/main/resources/theme/admin/base/resources/js/services.js b/forms/common-themes/src/main/resources/theme/admin/base/resources/js/services.js
index 979199a..b88c6b9 100755
--- a/forms/common-themes/src/main/resources/theme/admin/base/resources/js/services.js
+++ b/forms/common-themes/src/main/resources/theme/admin/base/resources/js/services.js
@@ -222,7 +222,7 @@ module.factory('UserLogout', function($resource) {
});
});
module.factory('UserSocialLinks', function($resource) {
- return $resource(authUrl + '/rest/admin/realms/:realm/users/:user/social-links', {
+ return $resource(authUrl + '/admin/realms/:realm/users/:user/social-links', {
realm : '@realm',
user : '@user'
});
diff --git a/forms/common-themes/src/main/resources/theme/admin/base/resources/partials/application-installation.html b/forms/common-themes/src/main/resources/theme/admin/base/resources/partials/application-installation.html
index dd1400e..f3c00ae 100755
--- a/forms/common-themes/src/main/resources/theme/admin/base/resources/partials/application-installation.html
+++ b/forms/common-themes/src/main/resources/theme/admin/base/resources/partials/application-installation.html
@@ -43,7 +43,7 @@
</form>
<div class="pull-right form-actions" ng-show="installation">
- <a class="btn btn-primary btn-lg" href="{{download}}" download="keycloak.json" type="submit">Download</a>
+ <a class="btn btn-primary btn-lg" data-ng-click="download()" type="submit">Download</a>
</div>
</div>
</div>
diff --git a/forms/common-themes/src/main/resources/theme/common/keycloak/resources/lib/filesaver/FileSaver.js b/forms/common-themes/src/main/resources/theme/common/keycloak/resources/lib/filesaver/FileSaver.js
new file mode 100644
index 0000000..6095017
--- /dev/null
+++ b/forms/common-themes/src/main/resources/theme/common/keycloak/resources/lib/filesaver/FileSaver.js
@@ -0,0 +1,241 @@
+/* FileSaver.js
+ * A saveAs() FileSaver implementation.
+ * 2014-05-27
+ *
+ * By Eli Grey, http://eligrey.com
+ * License: X11/MIT
+ * See https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md
+ */
+
+/*global self */
+/*jslint bitwise: true, indent: 4, laxbreak: true, laxcomma: true, smarttabs: true, plusplus: true */
+
+/*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */
+
+var saveAs = saveAs
+ // IE 10+ (native saveAs)
+ || (typeof navigator !== "undefined" &&
+ navigator.msSaveOrOpenBlob && navigator.msSaveOrOpenBlob.bind(navigator))
+ // Everyone else
+ || (function(view) {
+ "use strict";
+ // IE <10 is explicitly unsupported
+ if (typeof navigator !== "undefined" &&
+ /MSIE [1-9]\./.test(navigator.userAgent)) {
+ return;
+ }
+ var
+ doc = view.document
+ // only get URL when necessary in case Blob.js hasn't overridden it yet
+ , get_URL = function() {
+ return view.URL || view.webkitURL || view;
+ }
+ , save_link = doc.createElementNS("http://www.w3.org/1999/xhtml", "a")
+ , can_use_save_link = !view.externalHost && "download" in save_link
+ , click = function(node) {
+ var event = doc.createEvent("MouseEvents");
+ event.initMouseEvent(
+ "click", true, false, view, 0, 0, 0, 0, 0
+ , false, false, false, false, 0, null
+ );
+ node.dispatchEvent(event);
+ }
+ , webkit_req_fs = view.webkitRequestFileSystem
+ , req_fs = view.requestFileSystem || webkit_req_fs || view.mozRequestFileSystem
+ , throw_outside = function(ex) {
+ (view.setImmediate || view.setTimeout)(function() {
+ throw ex;
+ }, 0);
+ }
+ , force_saveable_type = "application/octet-stream"
+ , fs_min_size = 0
+ , deletion_queue = []
+ , process_deletion_queue = function() {
+ var i = deletion_queue.length;
+ while (i--) {
+ var file = deletion_queue[i];
+ if (typeof file === "string") { // file is an object URL
+ get_URL().revokeObjectURL(file);
+ } else { // file is a File
+ file.remove();
+ }
+ }
+ deletion_queue.length = 0; // clear queue
+ }
+ , dispatch = function(filesaver, event_types, event) {
+ event_types = [].concat(event_types);
+ var i = event_types.length;
+ while (i--) {
+ var listener = filesaver["on" + event_types[i]];
+ if (typeof listener === "function") {
+ try {
+ listener.call(filesaver, event || filesaver);
+ } catch (ex) {
+ throw_outside(ex);
+ }
+ }
+ }
+ }
+ , FileSaver = function(blob, name) {
+ // First try a.download, then web filesystem, then object URLs
+ var
+ filesaver = this
+ , type = blob.type
+ , blob_changed = false
+ , object_url
+ , target_view
+ , get_object_url = function() {
+ var object_url = get_URL().createObjectURL(blob);
+ deletion_queue.push(object_url);
+ return object_url;
+ }
+ , dispatch_all = function() {
+ dispatch(filesaver, "writestart progress write writeend".split(" "));
+ }
+ // on any filesys errors revert to saving with object URLs
+ , fs_error = function() {
+ // don't create more object URLs than needed
+ if (blob_changed || !object_url) {
+ object_url = get_object_url(blob);
+ }
+ if (target_view) {
+ target_view.location.href = object_url;
+ } else {
+ window.open(object_url, "_blank");
+ }
+ filesaver.readyState = filesaver.DONE;
+ dispatch_all();
+ }
+ , abortable = function(func) {
+ return function() {
+ if (filesaver.readyState !== filesaver.DONE) {
+ return func.apply(this, arguments);
+ }
+ };
+ }
+ , create_if_not_found = {create: true, exclusive: false}
+ , slice
+ ;
+ filesaver.readyState = filesaver.INIT;
+ if (!name) {
+ name = "download";
+ }
+ if (can_use_save_link) {
+ object_url = get_object_url(blob);
+ save_link.href = object_url;
+ save_link.download = name;
+ click(save_link);
+ filesaver.readyState = filesaver.DONE;
+ dispatch_all();
+ return;
+ }
+ // Object and web filesystem URLs have a problem saving in Google Chrome when
+ // viewed in a tab, so I force save with application/octet-stream
+ // http://code.google.com/p/chromium/issues/detail?id=91158
+ if (view.chrome && type && type !== force_saveable_type) {
+ slice = blob.slice || blob.webkitSlice;
+ blob = slice.call(blob, 0, blob.size, force_saveable_type);
+ blob_changed = true;
+ }
+ // Since I can't be sure that the guessed media type will trigger a download
+ // in WebKit, I append .download to the filename.
+ // https://bugs.webkit.org/show_bug.cgi?id=65440
+ if (webkit_req_fs && name !== "download") {
+ name += ".download";
+ }
+ if (type === force_saveable_type || webkit_req_fs) {
+ target_view = view;
+ }
+ if (!req_fs) {
+ fs_error();
+ return;
+ }
+ fs_min_size += blob.size;
+ req_fs(view.TEMPORARY, fs_min_size, abortable(function(fs) {
+ fs.root.getDirectory("saved", create_if_not_found, abortable(function(dir) {
+ var save = function() {
+ dir.getFile(name, create_if_not_found, abortable(function(file) {
+ file.createWriter(abortable(function(writer) {
+ writer.onwriteend = function(event) {
+ target_view.location.href = file.toURL();
+ deletion_queue.push(file);
+ filesaver.readyState = filesaver.DONE;
+ dispatch(filesaver, "writeend", event);
+ };
+ writer.onerror = function() {
+ var error = writer.error;
+ if (error.code !== error.ABORT_ERR) {
+ fs_error();
+ }
+ };
+ "writestart progress write abort".split(" ").forEach(function(event) {
+ writer["on" + event] = filesaver["on" + event];
+ });
+ writer.write(blob);
+ filesaver.abort = function() {
+ writer.abort();
+ filesaver.readyState = filesaver.DONE;
+ };
+ filesaver.readyState = filesaver.WRITING;
+ }), fs_error);
+ }), fs_error);
+ };
+ dir.getFile(name, {create: false}, abortable(function(file) {
+ // delete file if it already exists
+ file.remove();
+ save();
+ }), abortable(function(ex) {
+ if (ex.code === ex.NOT_FOUND_ERR) {
+ save();
+ } else {
+ fs_error();
+ }
+ }));
+ }), fs_error);
+ }), fs_error);
+ }
+ , FS_proto = FileSaver.prototype
+ , saveAs = function(blob, name) {
+ return new FileSaver(blob, name);
+ }
+ ;
+ FS_proto.abort = function() {
+ var filesaver = this;
+ filesaver.readyState = filesaver.DONE;
+ dispatch(filesaver, "abort");
+ };
+ FS_proto.readyState = FS_proto.INIT = 0;
+ FS_proto.WRITING = 1;
+ FS_proto.DONE = 2;
+
+ FS_proto.error =
+ FS_proto.onwritestart =
+ FS_proto.onprogress =
+ FS_proto.onwrite =
+ FS_proto.onabort =
+ FS_proto.onerror =
+ FS_proto.onwriteend =
+ null;
+
+ view.addEventListener("unload", process_deletion_queue, false);
+ saveAs.unload = function() {
+ process_deletion_queue();
+ view.removeEventListener("unload", process_deletion_queue, false);
+ };
+ return saveAs;
+}(
+ typeof self !== "undefined" && self
+ || typeof window !== "undefined" && window
+ || this.content
+));
+// `self` is undefined in Firefox for Android content script context
+// while `this` is nsIContentFrameMessageManager
+// with an attribute `content` that corresponds to the window
+
+if (typeof module !== "undefined" && module !== null) {
+ module.exports = saveAs;
+} else if ((typeof define !== "undefined" && define !== null) && (define.amd != null)) {
+ define([], function() {
+ return saveAs;
+ });
+}
forms/email-api/pom.xml 2(+1 -1)
diff --git a/forms/email-api/pom.xml b/forms/email-api/pom.xml
index 1bd0ae0..61a0787 100755
--- a/forms/email-api/pom.xml
+++ b/forms/email-api/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-forms-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
forms/email-freemarker/pom.xml 2(+1 -1)
diff --git a/forms/email-freemarker/pom.xml b/forms/email-freemarker/pom.xml
index 62a3135..22126e0 100755
--- a/forms/email-freemarker/pom.xml
+++ b/forms/email-freemarker/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-forms-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
forms/login-api/pom.xml 2(+1 -1)
diff --git a/forms/login-api/pom.xml b/forms/login-api/pom.xml
index d8399e2..3068e6f 100755
--- a/forms/login-api/pom.xml
+++ b/forms/login-api/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-forms-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
forms/login-freemarker/pom.xml 2(+1 -1)
diff --git a/forms/login-freemarker/pom.xml b/forms/login-freemarker/pom.xml
index 31ec8e3..33a97b5 100755
--- a/forms/login-freemarker/pom.xml
+++ b/forms/login-freemarker/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-forms-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
forms/pom.xml 2(+1 -1)
diff --git a/forms/pom.xml b/forms/pom.xml
index 8ae03b6..7ea2ce2 100755
--- a/forms/pom.xml
+++ b/forms/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
integration/adapter-core/pom.xml 2(+1 -1)
diff --git a/integration/adapter-core/pom.xml b/integration/adapter-core/pom.xml
index 1b10dc9..eec05bf 100755
--- a/integration/adapter-core/pom.xml
+++ b/integration/adapter-core/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
integration/as7-eap6/adapter/pom.xml 2(+1 -1)
diff --git a/integration/as7-eap6/adapter/pom.xml b/integration/as7-eap6/adapter/pom.xml
index 99ec805..b37dd01 100755
--- a/integration/as7-eap6/adapter/pom.xml
+++ b/integration/as7-eap6/adapter/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/integration/as7-eap-subsystem/pom.xml b/integration/as7-eap-subsystem/pom.xml
index 7339025..f01a5b7 100755
--- a/integration/as7-eap-subsystem/pom.xml
+++ b/integration/as7-eap-subsystem/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-parent</artifactId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
integration/installed/pom.xml 2(+1 -1)
diff --git a/integration/installed/pom.xml b/integration/installed/pom.xml
index 8734c2b..bc54019 100755
--- a/integration/installed/pom.xml
+++ b/integration/installed/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/integration/jaxrs-oauth-client/pom.xml b/integration/jaxrs-oauth-client/pom.xml
index 989c3ef..0b88811 100755
--- a/integration/jaxrs-oauth-client/pom.xml
+++ b/integration/jaxrs-oauth-client/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/integration/jboss-adapter-core/pom.xml b/integration/jboss-adapter-core/pom.xml
index 6c504ab..ffb2a63 100755
--- a/integration/jboss-adapter-core/pom.xml
+++ b/integration/jboss-adapter-core/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
integration/js/pom.xml 2(+1 -1)
diff --git a/integration/js/pom.xml b/integration/js/pom.xml
index c0cec1b..a08f3df 100755
--- a/integration/js/pom.xml
+++ b/integration/js/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/integration/js/src/main/resources/keycloak.js b/integration/js/src/main/resources/keycloak.js
index ef3af40..f826f39 100755
--- a/integration/js/src/main/resources/keycloak.js
+++ b/integration/js/src/main/resources/keycloak.js
@@ -531,7 +531,11 @@ var Keycloak = function (config) {
iframe.onload = function() {
var realmUrl = getRealmUrl();
- loginIframe.iframeOrigin = realmUrl.substring(0, realmUrl.indexOf('/', 8));
+ if (realmUrl.charAt(0) === '/') {
+ loginIframe.iframeOrigin = window.location.origin;
+ } else {
+ loginIframe.iframeOrigin = realmUrl.substring(0, realmUrl.indexOf('/', 8));
+ }
loginIframe.iframe = iframe;
}
integration/pom.xml 2(+1 -1)
diff --git a/integration/pom.xml b/integration/pom.xml
index 5e25f12..6efed51 100755
--- a/integration/pom.xml
+++ b/integration/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<name>Keycloak Integration</name>
diff --git a/integration/servlet-oauth-client/pom.xml b/integration/servlet-oauth-client/pom.xml
index 30881ab..4e10254 100755
--- a/integration/servlet-oauth-client/pom.xml
+++ b/integration/servlet-oauth-client/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
integration/tomcat7/adapter/pom.xml 2(+1 -1)
diff --git a/integration/tomcat7/adapter/pom.xml b/integration/tomcat7/adapter/pom.xml
index d73a683..c04cc17 100755
--- a/integration/tomcat7/adapter/pom.xml
+++ b/integration/tomcat7/adapter/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
integration/undertow/pom.xml 2(+1 -1)
diff --git a/integration/undertow/pom.xml b/integration/undertow/pom.xml
index f6bda05..b4ab2c1 100755
--- a/integration/undertow/pom.xml
+++ b/integration/undertow/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
integration/wildfly-adapter/pom.xml 2(+1 -1)
diff --git a/integration/wildfly-adapter/pom.xml b/integration/wildfly-adapter/pom.xml
index ad39fd5..2d9a63e 100755
--- a/integration/wildfly-adapter/pom.xml
+++ b/integration/wildfly-adapter/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/integration/wildfly-subsystem/pom.xml b/integration/wildfly-subsystem/pom.xml
index 671e9de..5311ee2 100755
--- a/integration/wildfly-subsystem/pom.xml
+++ b/integration/wildfly-subsystem/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-parent</artifactId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
model/api/pom.xml 2(+1 -1)
diff --git a/model/api/pom.xml b/model/api/pom.xml
index 446148f..f72d856 100755
--- a/model/api/pom.xml
+++ b/model/api/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/model/invalidation-cache/model-adapters/pom.xml b/model/invalidation-cache/model-adapters/pom.xml
index 3eecff0..8882850 100755
--- a/model/invalidation-cache/model-adapters/pom.xml
+++ b/model/invalidation-cache/model-adapters/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
model/invalidation-cache/pom.xml 2(+1 -1)
diff --git a/model/invalidation-cache/pom.xml b/model/invalidation-cache/pom.xml
index e17fbc6..d4f0490 100755
--- a/model/invalidation-cache/pom.xml
+++ b/model/invalidation-cache/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<name>Model Parent</name>
model/jpa/pom.xml 2(+1 -1)
diff --git a/model/jpa/pom.xml b/model/jpa/pom.xml
index 4c7e269..987abd2 100755
--- a/model/jpa/pom.xml
+++ b/model/jpa/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/model/jpa/src/main/java/org/keycloak/models/jpa/ApplicationAdapter.java b/model/jpa/src/main/java/org/keycloak/models/jpa/ApplicationAdapter.java
index 36ea182..11ee6f0 100755
--- a/model/jpa/src/main/java/org/keycloak/models/jpa/ApplicationAdapter.java
+++ b/model/jpa/src/main/java/org/keycloak/models/jpa/ApplicationAdapter.java
@@ -142,7 +142,7 @@ public class ApplicationAdapter extends ClientAdapter implements ApplicationMode
applicationEntity.getRoles().remove(role);
applicationEntity.getDefaultRoles().remove(role);
- em.createNativeQuery("delete from CompositeRole where role = :role").setParameter("role", role).executeUpdate();
+ em.createNativeQuery("delete from CompositeRole where childRole = :role").setParameter("role", role).executeUpdate();
em.createQuery("delete from " + ScopeMappingEntity.class.getSimpleName() + " where role = :role").setParameter("role", role).executeUpdate();
em.createQuery("delete from " + UserRoleMappingEntity.class.getSimpleName() + " where role = :role").setParameter("role", role).executeUpdate();
role.setApplication(null);
diff --git a/model/jpa/src/main/java/org/keycloak/models/jpa/entities/AbstractRoleMappingEntity.java b/model/jpa/src/main/java/org/keycloak/models/jpa/entities/AbstractRoleMappingEntity.java
index 685aed7..2ab0d00 100755
--- a/model/jpa/src/main/java/org/keycloak/models/jpa/entities/AbstractRoleMappingEntity.java
+++ b/model/jpa/src/main/java/org/keycloak/models/jpa/entities/AbstractRoleMappingEntity.java
@@ -3,6 +3,7 @@ package org.keycloak.models.jpa.entities;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
+import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.MappedSuperclass;
@@ -20,7 +21,9 @@ public class AbstractRoleMappingEntity {
protected String id;
@ManyToOne(fetch= FetchType.LAZY)
protected UserEntity user;
+
@ManyToOne(fetch= FetchType.LAZY)
+ @JoinColumn(name="roleId")
protected RoleEntity role;
public String getId() {
diff --git a/model/jpa/src/main/java/org/keycloak/models/jpa/entities/AuthenticationProviderEntity.java b/model/jpa/src/main/java/org/keycloak/models/jpa/entities/AuthenticationProviderEntity.java
index 8517ad2..2ce4c12 100644
--- a/model/jpa/src/main/java/org/keycloak/models/jpa/entities/AuthenticationProviderEntity.java
+++ b/model/jpa/src/main/java/org/keycloak/models/jpa/entities/AuthenticationProviderEntity.java
@@ -8,7 +8,9 @@ import javax.persistence.ElementCollection;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
+import javax.persistence.JoinColumn;
import javax.persistence.MapKeyColumn;
+import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;
@@ -16,6 +18,7 @@ import org.hibernate.annotations.GenericGenerator;
* @author <a href="mailto:mposolda@redhat.com">Marek Posolda</a>
*/
@Entity
+@Table(name="AuthProviderEntity")
public class AuthenticationProviderEntity {
@Id
@@ -30,7 +33,9 @@ public class AuthenticationProviderEntity {
@ElementCollection
@MapKeyColumn(name="name")
@Column(name="value")
- @CollectionTable
+ @CollectionTable(name="AuthProviderEntity_cfg", joinColumns = {
+ @JoinColumn(name = "AuthProviderEntity_id")
+ })
private Map<String, String> config;
public String getId() {
diff --git a/model/jpa/src/main/java/org/keycloak/models/jpa/entities/ClientUserSessionAssociationEntity.java b/model/jpa/src/main/java/org/keycloak/models/jpa/entities/ClientUserSessionAssociationEntity.java
index 0cf75aa..490e75d 100755
--- a/model/jpa/src/main/java/org/keycloak/models/jpa/entities/ClientUserSessionAssociationEntity.java
+++ b/model/jpa/src/main/java/org/keycloak/models/jpa/entities/ClientUserSessionAssociationEntity.java
@@ -9,12 +9,14 @@ import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
+import javax.persistence.Table;
/**
* @author <a href="mailto:bill@burkecentral.com">Bill Burke</a>
* @version $Revision: 1 $
*/
@Entity
+@Table(name = "ClientUserSessionAscEntity")
@NamedQueries({
@NamedQuery(name = "getAllClientUserSessions", query = "select s from ClientUserSessionAssociationEntity s"),
@NamedQuery(name = "getClientUserSessionBySession", query = "select s from ClientUserSessionAssociationEntity s where s.session = :session"),
diff --git a/model/jpa/src/main/java/org/keycloak/models/jpa/entities/RoleEntity.java b/model/jpa/src/main/java/org/keycloak/models/jpa/entities/RoleEntity.java
index c6f3eb1..d3fc6df 100755
--- a/model/jpa/src/main/java/org/keycloak/models/jpa/entities/RoleEntity.java
+++ b/model/jpa/src/main/java/org/keycloak/models/jpa/entities/RoleEntity.java
@@ -26,9 +26,7 @@ import org.hibernate.annotations.GenericGenerator;
*/
@Entity
@Table(uniqueConstraints = {
- @UniqueConstraint(columnNames = { "name", "application"}),
- @UniqueConstraint(columnNames = { "name", "realm" })
-
+ @UniqueConstraint(columnNames = { "name", "appRealmConstraint" })
})
@NamedQueries({
@NamedQuery(name="getAppRoleByName", query="select role from RoleEntity role where role.name = :name and role.application = :application"),
@@ -57,8 +55,11 @@ public class RoleEntity {
@JoinColumn(name = "application")
private ApplicationEntity application;
+ // Hack to ensure that either name+application or name+realm are unique. Needed due to MS-SQL as it don't allow multiple NULL values in the column, which is part of constraint
+ private String appRealmConstraint;
+
@ManyToMany(fetch = FetchType.LAZY, cascade = {})
- @JoinTable(name = "CompositeRole", joinColumns = @JoinColumn(name = "composite"), inverseJoinColumns = @JoinColumn(name = "role"))
+ @JoinTable(name = "CompositeRole", joinColumns = @JoinColumn(name = "composite"), inverseJoinColumns = @JoinColumn(name = "childRole"))
private Collection<RoleEntity> compositeRoles = new ArrayList<RoleEntity>();
public String getId() {
@@ -115,6 +116,7 @@ public class RoleEntity {
public void setRealm(RealmEntity realm) {
this.realm = realm;
+ this.appRealmConstraint = realm.getId();
}
public ApplicationEntity getApplication() {
@@ -123,6 +125,17 @@ public class RoleEntity {
public void setApplication(ApplicationEntity application) {
this.application = application;
+ if (application != null) {
+ this.appRealmConstraint = application.getId();
+ }
+ }
+
+ public String getAppRealmConstraint() {
+ return appRealmConstraint;
+ }
+
+ public void setAppRealmConstraint(String appRealmConstraint) {
+ this.appRealmConstraint = appRealmConstraint;
}
@Override
diff --git a/model/jpa/src/main/java/org/keycloak/models/jpa/entities/ScopeMappingEntity.java b/model/jpa/src/main/java/org/keycloak/models/jpa/entities/ScopeMappingEntity.java
index e1a00f9..b45b69b 100755
--- a/model/jpa/src/main/java/org/keycloak/models/jpa/entities/ScopeMappingEntity.java
+++ b/model/jpa/src/main/java/org/keycloak/models/jpa/entities/ScopeMappingEntity.java
@@ -6,6 +6,7 @@ import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
+import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
@@ -27,7 +28,9 @@ public class ScopeMappingEntity {
protected String id;
@ManyToOne(fetch= FetchType.LAZY)
protected ClientEntity client;
+
@ManyToOne(fetch= FetchType.LAZY)
+ @JoinColumn(name="roleId")
protected RoleEntity role;
public String getId() {
diff --git a/model/jpa/src/main/java/org/keycloak/models/jpa/entities/UserEntity.java b/model/jpa/src/main/java/org/keycloak/models/jpa/entities/UserEntity.java
index d873901..3b765b4 100755
--- a/model/jpa/src/main/java/org/keycloak/models/jpa/entities/UserEntity.java
+++ b/model/jpa/src/main/java/org/keycloak/models/jpa/entities/UserEntity.java
@@ -2,6 +2,7 @@ package org.keycloak.models.jpa.entities;
import org.hibernate.annotations.GenericGenerator;
import org.keycloak.models.UserModel;
+import org.keycloak.models.utils.KeycloakModelUtils;
import javax.persistence.CascadeType;
import javax.persistence.CollectionTable;
@@ -42,7 +43,7 @@ import java.util.Set;
@Entity
@Table(uniqueConstraints = {
@UniqueConstraint(columnNames = { "realm", "loginName" }),
- @UniqueConstraint(columnNames = { "realm", "email" })
+ @UniqueConstraint(columnNames = { "realm", "emailConstraint" })
})
public class UserEntity {
@Id
@@ -57,6 +58,8 @@ public class UserEntity {
protected boolean emailVerified;
protected int notBefore;
+ // Hack just to workaround the fact that on MS-SQL you can't have unique constraint with multiple NULL values TODO: Find better solution (like unique index with 'where' but that's proprietary)
+ protected String emailConstraint = KeycloakModelUtils.generateId();
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "realm")
@@ -116,6 +119,7 @@ public class UserEntity {
public void setEmail(String email) {
this.email = email;
+ this.emailConstraint = email != null ? email : KeycloakModelUtils.generateId();
}
public boolean isEnabled() {
@@ -126,6 +130,14 @@ public class UserEntity {
this.enabled = enabled;
}
+ public String getEmailConstraint() {
+ return emailConstraint;
+ }
+
+ public void setEmailConstraint(String emailConstraint) {
+ this.emailConstraint = emailConstraint;
+ }
+
public boolean isTotp() {
return totp;
}
diff --git a/model/jpa/src/main/java/org/keycloak/models/jpa/JpaKeycloakSessionFactory.java b/model/jpa/src/main/java/org/keycloak/models/jpa/JpaKeycloakSessionFactory.java
index 6efe710..2865957 100755
--- a/model/jpa/src/main/java/org/keycloak/models/jpa/JpaKeycloakSessionFactory.java
+++ b/model/jpa/src/main/java/org/keycloak/models/jpa/JpaKeycloakSessionFactory.java
@@ -4,6 +4,7 @@ import org.keycloak.Config;
import org.keycloak.models.KeycloakSession;
import org.keycloak.models.KeycloakSessionFactory;
import org.keycloak.provider.ProviderSession;
+import org.keycloak.util.JpaUtils;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
@@ -19,7 +20,7 @@ public class JpaKeycloakSessionFactory implements KeycloakSessionFactory {
@Override
public void init(Config.Scope config) {
- emf = Persistence.createEntityManagerFactory("jpa-keycloak-identity-store", getHibernateProperties());
+ emf = Persistence.createEntityManagerFactory("jpa-keycloak-identity-store", JpaUtils.getHibernateProperties());
}
@Override
@@ -36,18 +37,4 @@ public class JpaKeycloakSessionFactory implements KeycloakSessionFactory {
public void close() {
emf.close();
}
-
- // Allows to override some properties in persistence.xml by system properties
- protected Properties getHibernateProperties() {
- Properties result = new Properties();
-
- for (Object property : System.getProperties().keySet()) {
- if (property.toString().startsWith("hibernate.")) {
- String propValue = System.getProperty(property.toString());
- result.put(property, propValue);
- }
- }
- return result;
- }
-
}
diff --git a/model/jpa/src/main/java/org/keycloak/models/jpa/RealmAdapter.java b/model/jpa/src/main/java/org/keycloak/models/jpa/RealmAdapter.java
index fb92f14..18fc1db 100755
--- a/model/jpa/src/main/java/org/keycloak/models/jpa/RealmAdapter.java
+++ b/model/jpa/src/main/java/org/keycloak/models/jpa/RealmAdapter.java
@@ -928,7 +928,7 @@ public class RealmAdapter implements RealmModel {
realm.getRoles().remove(role);
realm.getDefaultRoles().remove(role);
- em.createNativeQuery("delete from CompositeRole where role = :role").setParameter("role", roleEntity).executeUpdate();
+ em.createNativeQuery("delete from CompositeRole where childRole = :role").setParameter("role", roleEntity).executeUpdate();
em.createQuery("delete from " + UserRoleMappingEntity.class.getSimpleName() + " where role = :role").setParameter("role", roleEntity).executeUpdate();
em.createQuery("delete from " + ScopeMappingEntity.class.getSimpleName() + " where role = :role").setParameter("role", roleEntity).executeUpdate();
model/mongo/pom.xml 2(+1 -1)
diff --git a/model/mongo/pom.xml b/model/mongo/pom.xml
index eda284f..31d513d 100755
--- a/model/mongo/pom.xml
+++ b/model/mongo/pom.xml
@@ -5,7 +5,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
model/pom.xml 2(+1 -1)
diff --git a/model/pom.xml b/model/pom.xml
index 2d972fe..850a21f 100755
--- a/model/pom.xml
+++ b/model/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<name>Model Parent</name>
model/tests/pom.xml 2(+1 -1)
diff --git a/model/tests/pom.xml b/model/tests/pom.xml
index bfd2678..3149597 100755
--- a/model/tests/pom.xml
+++ b/model/tests/pom.xml
@@ -5,7 +5,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/picketlink/keycloak-picketlink-api/pom.xml b/picketlink/keycloak-picketlink-api/pom.xml
index 6c0d132..b954af7 100755
--- a/picketlink/keycloak-picketlink-api/pom.xml
+++ b/picketlink/keycloak-picketlink-api/pom.xml
@@ -5,7 +5,7 @@
<parent>
<artifactId>keycloak-picketlink-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/picketlink/keycloak-picketlink-realm/pom.xml b/picketlink/keycloak-picketlink-realm/pom.xml
index 8c345a3..d95eaaa 100755
--- a/picketlink/keycloak-picketlink-realm/pom.xml
+++ b/picketlink/keycloak-picketlink-realm/pom.xml
@@ -5,7 +5,7 @@
<parent>
<artifactId>keycloak-picketlink-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
picketlink/pom.xml 2(+1 -1)
diff --git a/picketlink/pom.xml b/picketlink/pom.xml
index 078aee3..dc07ca5 100755
--- a/picketlink/pom.xml
+++ b/picketlink/pom.xml
@@ -5,7 +5,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
pom.xml 2(+1 -1)
diff --git a/pom.xml b/pom.xml
index 6279df5..cd19d16 100755
--- a/pom.xml
+++ b/pom.xml
@@ -8,7 +8,7 @@
</description>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-parent</artifactId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<packaging>pom</packaging>
<properties>
diff --git a/project-integrations/aerogear-ups/app/pom.xml b/project-integrations/aerogear-ups/app/pom.xml
index 2b7b3a1..2bf361c 100755
--- a/project-integrations/aerogear-ups/app/pom.xml
+++ b/project-integrations/aerogear-ups/app/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
diff --git a/project-integrations/aerogear-ups/auth-server/pom.xml b/project-integrations/aerogear-ups/auth-server/pom.xml
index 07ec631..c32789c 100755
--- a/project-integrations/aerogear-ups/auth-server/pom.xml
+++ b/project-integrations/aerogear-ups/auth-server/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
diff --git a/project-integrations/aerogear-ups/auth-server/src/main/webapp/WEB-INF/keycloak-server.json b/project-integrations/aerogear-ups/auth-server/src/main/webapp/WEB-INF/keycloak-server.json
index e321f7f..e0dd897 100755
--- a/project-integrations/aerogear-ups/auth-server/src/main/webapp/WEB-INF/keycloak-server.json
+++ b/project-integrations/aerogear-ups/auth-server/src/main/webapp/WEB-INF/keycloak-server.json
@@ -8,7 +8,7 @@
},
"modelCache": {
- "provider": "${keycloak.model.cache.provider:simple}"
+ "provider": "${keycloak.model.cache.provider:none}"
},
"timer": {
diff --git a/project-integrations/aerogear-ups/pom.xml b/project-integrations/aerogear-ups/pom.xml
index 524e3eb..873117f 100755
--- a/project-integrations/aerogear-ups/pom.xml
+++ b/project-integrations/aerogear-ups/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<name>Aerogear UPS Parent</name>
project-integrations/pom.xml 2(+1 -1)
diff --git a/project-integrations/pom.xml b/project-integrations/pom.xml
index e0b1ade..840b5c1 100755
--- a/project-integrations/pom.xml
+++ b/project-integrations/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<name>Third-party Integration Parent</name>
server/pom.xml 19(+1 -18)
diff --git a/server/pom.xml b/server/pom.xml
index 9185e34..2d8e61d 100755
--- a/server/pom.xml
+++ b/server/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
@@ -260,23 +260,6 @@
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
</dependency>
- <dependency>
- <groupId>org.picketlink</groupId>
- <artifactId>picketlink-common</artifactId>
- </dependency>
-
- <dependency>
- <groupId>org.picketlink</groupId>
- <artifactId>picketlink-idm-api</artifactId>
- </dependency>
- <dependency>
- <groupId>org.picketlink</groupId>
- <artifactId>picketlink-idm-impl</artifactId>
- </dependency>
- <dependency>
- <groupId>org.picketlink</groupId>
- <artifactId>picketlink-idm-simple-schema</artifactId>
- </dependency>
<!-- export/import -->
<dependency>
diff --git a/server/src/main/resources/META-INF/keycloak-server.json b/server/src/main/resources/META-INF/keycloak-server.json
index 2375215..fb726ca 100755
--- a/server/src/main/resources/META-INF/keycloak-server.json
+++ b/server/src/main/resources/META-INF/keycloak-server.json
@@ -15,7 +15,7 @@
},
"modelCache": {
- "provider": "${keycloak.model.cache.provider:simple}"
+ "provider": "${keycloak.model.cache.provider:none}"
},
"timer": {
services/pom.xml 8(+1 -7)
diff --git a/services/pom.xml b/services/pom.xml
index 9d9a564..0f82346 100755
--- a/services/pom.xml
+++ b/services/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
@@ -99,12 +99,6 @@
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
- <artifactId>keycloak-authentication-api</artifactId>
- <version>${project.version}</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.keycloak</groupId>
<artifactId>keycloak-export-import-api</artifactId>
<version>${project.version}</version>
<scope>provided</scope>
diff --git a/services/src/main/java/org/keycloak/services/resources/admin/RealmsAdminResource.java b/services/src/main/java/org/keycloak/services/resources/admin/RealmsAdminResource.java
index 9e888a0..7600c87 100755
--- a/services/src/main/java/org/keycloak/services/resources/admin/RealmsAdminResource.java
+++ b/services/src/main/java/org/keycloak/services/resources/admin/RealmsAdminResource.java
@@ -21,6 +21,7 @@ import org.keycloak.services.managers.RealmManager;
import org.keycloak.services.managers.TokenManager;
import org.keycloak.services.resources.KeycloakApplication;
import org.keycloak.services.resources.flows.Flows;
+import org.keycloak.util.JsonSerialization;
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
@@ -167,10 +168,8 @@ public class RealmsAdminResource {
List<InputPart> inputParts = uploadForm.get("file");
for (InputPart inputPart : inputParts) {
- inputPart.setMediaType(MediaType.APPLICATION_JSON_TYPE);
- RealmRepresentation rep = inputPart.getBody(new GenericType<RealmRepresentation>() {
- });
-
+ // inputPart.getBody doesn't work as content-type is wrong, and inputPart.setMediaType is not supported on AS7 (RestEasy 2.3.2.Final)
+ RealmRepresentation rep = JsonSerialization.readValue(inputPart.getBodyAsString(), RealmRepresentation.class);
RealmModel realm;
try {
realm = realmManager.importRealm(rep);
social/core/pom.xml 2(+1 -1)
diff --git a/social/core/pom.xml b/social/core/pom.xml
index c51947c..86eb1c8 100755
--- a/social/core/pom.xml
+++ b/social/core/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-social-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
social/facebook/pom.xml 2(+1 -1)
diff --git a/social/facebook/pom.xml b/social/facebook/pom.xml
index db0172d..6efd735 100755
--- a/social/facebook/pom.xml
+++ b/social/facebook/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>keycloak-social-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
social/github/pom.xml 2(+1 -1)
diff --git a/social/github/pom.xml b/social/github/pom.xml
index f5ca89c..91bd6ae 100755
--- a/social/github/pom.xml
+++ b/social/github/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>keycloak-social-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
social/google/pom.xml 2(+1 -1)
diff --git a/social/google/pom.xml b/social/google/pom.xml
index 0f4faf4..e54edc1 100755
--- a/social/google/pom.xml
+++ b/social/google/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-social-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
social/pom.xml 2(+1 -1)
diff --git a/social/pom.xml b/social/pom.xml
index 40cb5fd..8576beb 100755
--- a/social/pom.xml
+++ b/social/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
social/twitter/pom.xml 2(+1 -1)
diff --git a/social/twitter/pom.xml b/social/twitter/pom.xml
index 29e7921..6ea5460 100755
--- a/social/twitter/pom.xml
+++ b/social/twitter/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-social-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
testsuite/integration/pom.xml 2(+1 -1)
diff --git a/testsuite/integration/pom.xml b/testsuite/integration/pom.xml
index f7be0a8..a1d7c50 100755
--- a/testsuite/integration/pom.xml
+++ b/testsuite/integration/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/testsuite/integration/src/main/resources/META-INF/keycloak-server.json b/testsuite/integration/src/main/resources/META-INF/keycloak-server.json
index a1e1ec1..65197a4 100755
--- a/testsuite/integration/src/main/resources/META-INF/keycloak-server.json
+++ b/testsuite/integration/src/main/resources/META-INF/keycloak-server.json
@@ -24,7 +24,7 @@
},
"modelCache": {
- "provider": "${keycloak.model.cache.provider:simple}"
+ "provider": "${keycloak.model.cache.provider:none}"
},
"timer": {
testsuite/performance/pom.xml 2(+1 -1)
diff --git a/testsuite/performance/pom.xml b/testsuite/performance/pom.xml
index 1e34a31..6dbe26e 100755
--- a/testsuite/performance/pom.xml
+++ b/testsuite/performance/pom.xml
@@ -5,7 +5,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
testsuite/pom.xml 2(+1 -1)
diff --git a/testsuite/pom.xml b/testsuite/pom.xml
index b364e1d..766e611 100755
--- a/testsuite/pom.xml
+++ b/testsuite/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
timer/api/pom.xml 2(+1 -1)
diff --git a/timer/api/pom.xml b/timer/api/pom.xml
index f13cc03..51f78dc 100755
--- a/timer/api/pom.xml
+++ b/timer/api/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>keycloak-timer-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
timer/basic/pom.xml 2(+1 -1)
diff --git a/timer/basic/pom.xml b/timer/basic/pom.xml
index 8979253..72b203c 100755
--- a/timer/basic/pom.xml
+++ b/timer/basic/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>keycloak-timer-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
timer/pom.xml 2(+1 -1)
diff --git a/timer/pom.xml b/timer/pom.xml
index 23d289f..d78a1a7 100755
--- a/timer/pom.xml
+++ b/timer/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
- <version>1.0-beta-3-SNAPSHOT</version>
+ <version>1.0-beta-4-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>