Created
December 7, 2016 19:14
-
-
Save hkeeler/dac5b5d94c1f86b8cf837fc83b1e3e79 to your computer and use it in GitHub Desktop.
Diff of /opt/jboss directory from v2.3.0 to v2.4.0 of jboss/keycloak-postgres
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Only in /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/bin/client: keycloak-client-registration-cli-2.3.0.Final.jar | |
Only in /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/bin/client: keycloak-client-registration-cli-2.4.0.Final.jar | |
diff -ru /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/bin/kcreg.bat /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/bin/kcreg.bat | |
--- /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/bin/kcreg.bat 2016-10-26 02:58:56.000000000 -0400 | |
+++ /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/bin/kcreg.bat 2016-11-23 14:27:40.000000000 -0500 | |
@@ -5,4 +5,4 @@ | |
) else ( | |
set DIRNAME=.\ | |
) | |
-java %KC_OPTS% -cp %DIRNAME%\client\keycloak-client-registration-cli-2.3.0.Final.jar org.keycloak.client.registration.cli.KcRegMain %* | |
+java %KC_OPTS% -cp %DIRNAME%\client\keycloak-client-registration-cli-2.4.0.Final.jar org.keycloak.client.registration.cli.KcRegMain %* | |
diff -ru /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/bin/kcreg.sh /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/bin/kcreg.sh | |
--- /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/bin/kcreg.sh 2016-10-26 02:58:56.000000000 -0400 | |
+++ /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/bin/kcreg.sh 2016-11-23 14:27:40.000000000 -0500 | |
@@ -20,4 +20,4 @@ | |
fi | |
DIRNAME=`dirname "$RESOLVED_NAME"` | |
-java $KC_OPTS -cp $DIRNAME/client/keycloak-client-registration-cli-2.3.0.Final.jar org.keycloak.client.registration.cli.KcRegMain "$@" | |
\ No newline at end of file | |
+java $KC_OPTS -cp $DIRNAME/client/keycloak-client-registration-cli-2.4.0.Final.jar org.keycloak.client.registration.cli.KcRegMain "$@" | |
\ No newline at end of file | |
diff -ru /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/domain/configuration/domain.xml /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/domain/configuration/domain.xml | |
--- /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/domain/configuration/domain.xml 2016-10-26 04:17:48.000000000 -0400 | |
+++ /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/domain/configuration/domain.xml 2016-11-23 15:37:56.000000000 -0500 | |
@@ -561,10 +561,10 @@ | |
<subsystem xmlns="urn:jboss:domain:infinispan:4.0"> | |
<cache-container name="keycloak" jndi-name="infinispan/Keycloak"> | |
<transport lock-timeout="60000"/> | |
- <invalidation-cache name="realms" mode="SYNC"/> | |
- <invalidation-cache name="users" mode="SYNC"> | |
+ <local-cache name="realms"/> | |
+ <local-cache name="users"> | |
<eviction max-entries="10000" strategy="LRU"/> | |
- </invalidation-cache> | |
+ </local-cache> | |
<distributed-cache name="sessions" mode="SYNC" owners="1"/> | |
<distributed-cache name="offlineSessions" mode="SYNC" owners="1"/> | |
<distributed-cache name="loginFailures" mode="SYNC" owners="1"/> | |
Binary files /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/base/org/apache/cxf/impl/main/cxf-rt-security-3.1.4-jandex.jar and /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/base/org/apache/cxf/impl/main/cxf-rt-security-3.1.4-jandex.jar differ | |
Binary files /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/base/org/apache/cxf/impl/main/cxf-rt-ws-security-3.1.4-jandex.jar and /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/base/org/apache/cxf/impl/main/cxf-rt-ws-security-3.1.4-jandex.jar differ | |
diff -ru /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/com/thoughtworks/xstream/main/module.xml /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/com/thoughtworks/xstream/main/module.xml | |
--- /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/com/thoughtworks/xstream/main/module.xml 2016-10-26 04:17:47.000000000 -0400 | |
+++ /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/com/thoughtworks/xstream/main/module.xml 2016-11-23 15:37:56.000000000 -0500 | |
@@ -20,7 +20,7 @@ | |
<property name="jboss.api" value="private"/> | |
</properties> | |
<resources> | |
- <resource-root path="xstream-1.4.7.jar"/> | |
+ <resource-root path="xstream-1.4.9.jar"/> | |
</resources> | |
<dependencies> | |
<module name="javax.api"/> | |
Only in /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/com/thoughtworks/xstream/main: xstream-1.4.7.jar | |
Only in /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/com/thoughtworks/xstream/main: xstream-1.4.9.jar | |
diff -ru /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/drools/main/module.xml /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/drools/main/module.xml | |
--- /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/drools/main/module.xml 2016-10-26 04:17:48.000000000 -0400 | |
+++ /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/drools/main/module.xml 2016-11-23 15:37:56.000000000 -0500 | |
@@ -31,6 +31,7 @@ | |
<module name="org.keycloak.keycloak-core"/> | |
<module name="org.keycloak.keycloak-common"/> | |
<module name="org.keycloak.keycloak-server-spi"/> | |
+ <module name="org.keycloak.keycloak-server-spi-private"/> | |
<module name="com.thoughtworks.xstream"/> | |
<module name="org.antlr" slot="3.5"/> | |
<module name="org.kie"/> | |
diff -ru /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/eclipse/jdt/core/compiler/ecj/main/module.xml /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/eclipse/jdt/core/compiler/ecj/main/module.xml | |
--- /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/eclipse/jdt/core/compiler/ecj/main/module.xml 2016-10-26 04:17:48.000000000 -0400 | |
+++ /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/eclipse/jdt/core/compiler/ecj/main/module.xml 2016-11-23 15:37:56.000000000 -0500 | |
@@ -31,6 +31,7 @@ | |
<module name="org.keycloak.keycloak-core"/> | |
<module name="org.keycloak.keycloak-common"/> | |
<module name="org.keycloak.keycloak-server-spi"/> | |
+ <module name="org.keycloak.keycloak-server-spi-private"/> | |
</dependencies> | |
</module> | |
Only in /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/eclipse/sisu/main: guice-servlet-3.2.3.jar | |
diff -ru /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/eclipse/sisu/main/module.xml /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/eclipse/sisu/main/module.xml | |
--- /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/eclipse/sisu/main/module.xml 2016-10-26 04:17:47.000000000 -0400 | |
+++ /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/eclipse/sisu/main/module.xml 2016-11-23 15:37:56.000000000 -0500 | |
@@ -22,6 +22,7 @@ | |
<resources> | |
<resource-root path="org.eclipse.sisu.inject-0.3.0.M1.jar"/> | |
<resource-root path="org.eclipse.sisu.plexus-0.3.0.M1.jar"/> | |
+ <resource-root path="guice-servlet-3.2.3.jar"/> | |
</resources> | |
<dependencies> | |
<module name="javax.api"/> | |
diff -ru /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/jboss/as/product/keycloak/dir/META-INF/MANIFEST.MF /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/jboss/as/product/keycloak/dir/META-INF/MANIFEST.MF | |
--- /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/jboss/as/product/keycloak/dir/META-INF/MANIFEST.MF 2016-10-26 04:17:48.000000000 -0400 | |
+++ /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/jboss/as/product/keycloak/dir/META-INF/MANIFEST.MF 2016-11-23 15:37:56.000000000 -0500 | |
@@ -1,3 +1,3 @@ | |
JBoss-Product-Release-Name: Keycloak | |
-JBoss-Product-Release-Version: 2.3.0.Final | |
+JBoss-Product-Release-Version: 2.4.0.Final | |
JBoss-Product-Console-Slot: main | |
Only in /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-authz-policy-common/main: keycloak-authz-policy-common-2.3.0.Final.jar | |
Only in /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-authz-policy-common/main: keycloak-authz-policy-common-2.4.0.Final.jar | |
diff -ru /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-authz-policy-common/main/module.xml /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-authz-policy-common/main/module.xml | |
--- /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-authz-policy-common/main/module.xml 2016-10-26 04:17:47.000000000 -0400 | |
+++ /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-authz-policy-common/main/module.xml 2016-11-23 15:37:56.000000000 -0500 | |
@@ -21,7 +21,7 @@ | |
<property name="jboss.api" value="private"/> | |
</properties> | |
<resources> | |
- <resource-root path="keycloak-authz-policy-common-2.3.0.Final.jar"/> | |
+ <resource-root path="keycloak-authz-policy-common-2.4.0.Final.jar"/> | |
</resources> | |
<dependencies> | |
<module name="javax.api"/> | |
@@ -29,6 +29,7 @@ | |
<module name="org.keycloak.keycloak-core"/> | |
<module name="org.keycloak.keycloak-common"/> | |
<module name="org.keycloak.keycloak-server-spi"/> | |
+ <module name="org.keycloak.keycloak-server-spi-private"/> | |
<module name="org.keycloak.keycloak-services"/> | |
</dependencies> | |
Only in /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-authz-policy-drools/main: keycloak-authz-policy-drools-2.3.0.Final.jar | |
Only in /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-authz-policy-drools/main: keycloak-authz-policy-drools-2.4.0.Final.jar | |
diff -ru /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-authz-policy-drools/main/module.xml /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-authz-policy-drools/main/module.xml | |
--- /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-authz-policy-drools/main/module.xml 2016-10-26 04:17:47.000000000 -0400 | |
+++ /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-authz-policy-drools/main/module.xml 2016-11-23 15:37:56.000000000 -0500 | |
@@ -20,7 +20,7 @@ | |
<property name="jboss.api" value="private"/> | |
</properties> | |
<resources> | |
- <resource-root path="keycloak-authz-policy-drools-2.3.0.Final.jar"/> | |
+ <resource-root path="keycloak-authz-policy-drools-2.4.0.Final.jar"/> | |
</resources> | |
<dependencies> | |
<module name="javax.api"/> | |
@@ -28,6 +28,7 @@ | |
<module name="org.keycloak.keycloak-core"/> | |
<module name="org.keycloak.keycloak-common"/> | |
<module name="org.keycloak.keycloak-server-spi"/> | |
+ <module name="org.keycloak.keycloak-server-spi-private"/> | |
<module name="org.keycloak.keycloak-services"/> | |
<module name="org.kie"/> | |
</dependencies> | |
Only in /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-common/main: keycloak-common-2.3.0.Final.jar | |
Only in /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-common/main: keycloak-common-2.4.0.Final.jar | |
diff -ru /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-common/main/module.xml /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-common/main/module.xml | |
--- /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-common/main/module.xml 2016-10-26 04:17:47.000000000 -0400 | |
+++ /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-common/main/module.xml 2016-11-23 15:37:56.000000000 -0500 | |
@@ -16,12 +16,8 @@ | |
~ limitations under the License. | |
--> | |
<module xmlns="urn:jboss:module:1.3" name="org.keycloak.keycloak-common"> | |
- <properties> | |
- <property name="jboss.api" value="private"/> | |
- </properties> | |
- | |
<resources> | |
- <resource-root path="keycloak-common-2.3.0.Final.jar"/> | |
+ <resource-root path="keycloak-common-2.4.0.Final.jar"/> | |
</resources> | |
<dependencies> | |
Only in /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-core/main: keycloak-core-2.3.0.Final.jar | |
Only in /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-core/main: keycloak-core-2.4.0.Final.jar | |
diff -ru /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-core/main/module.xml /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-core/main/module.xml | |
--- /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-core/main/module.xml 2016-10-26 04:17:47.000000000 -0400 | |
+++ /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-core/main/module.xml 2016-11-23 15:37:56.000000000 -0500 | |
@@ -16,12 +16,8 @@ | |
~ limitations under the License. | |
--> | |
<module xmlns="urn:jboss:module:1.3" name="org.keycloak.keycloak-core"> | |
- <properties> | |
- <property name="jboss.api" value="private"/> | |
- </properties> | |
- | |
<resources> | |
- <resource-root path="keycloak-core-2.3.0.Final.jar"/> | |
+ <resource-root path="keycloak-core-2.4.0.Final.jar"/> | |
</resources> | |
<dependencies> | |
Only in /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-js-adapter/main: keycloak-js-adapter-2.3.0.Final.jar | |
Only in /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-js-adapter/main: keycloak-js-adapter-2.4.0.Final.jar | |
diff -ru /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-js-adapter/main/module.xml /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-js-adapter/main/module.xml | |
--- /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-js-adapter/main/module.xml 2016-10-26 04:17:47.000000000 -0400 | |
+++ /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-js-adapter/main/module.xml 2016-11-23 15:37:56.000000000 -0500 | |
@@ -21,6 +21,6 @@ | |
</properties> | |
<resources> | |
- <resource-root path="keycloak-js-adapter-2.3.0.Final.jar"/> | |
+ <resource-root path="keycloak-js-adapter-2.4.0.Final.jar"/> | |
</resources> | |
</module> | |
Only in /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-kerberos-federation/main: keycloak-kerberos-federation-2.3.0.Final.jar | |
Only in /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-kerberos-federation/main: keycloak-kerberos-federation-2.4.0.Final.jar | |
diff -ru /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-kerberos-federation/main/module.xml /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-kerberos-federation/main/module.xml | |
--- /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-kerberos-federation/main/module.xml 2016-10-26 04:17:48.000000000 -0400 | |
+++ /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-kerberos-federation/main/module.xml 2016-11-23 15:37:56.000000000 -0500 | |
@@ -21,13 +21,14 @@ | |
</properties> | |
<resources> | |
- <resource-root path="keycloak-kerberos-federation-2.3.0.Final.jar"/> | |
+ <resource-root path="keycloak-kerberos-federation-2.4.0.Final.jar"/> | |
</resources> | |
<dependencies> | |
<module name="org.keycloak.keycloak-common"/> | |
<module name="org.keycloak.keycloak-core"/> | |
<module name="org.keycloak.keycloak-server-spi"/> | |
+ <module name="org.keycloak.keycloak-server-spi-private"/> | |
<module name="javax.ws.rs.api"/> | |
<module name="org.jboss.resteasy.resteasy-jaxrs"/> | |
<module name="org.jboss.logging"/> | |
Only in /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-ldap-federation/main: keycloak-ldap-federation-2.3.0.Final.jar | |
Only in /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-ldap-federation/main: keycloak-ldap-federation-2.4.0.Final.jar | |
diff -ru /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-ldap-federation/main/module.xml /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-ldap-federation/main/module.xml | |
--- /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-ldap-federation/main/module.xml 2016-10-26 04:17:48.000000000 -0400 | |
+++ /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-ldap-federation/main/module.xml 2016-11-23 15:37:56.000000000 -0500 | |
@@ -21,13 +21,14 @@ | |
</properties> | |
<resources> | |
- <resource-root path="keycloak-ldap-federation-2.3.0.Final.jar"/> | |
+ <resource-root path="keycloak-ldap-federation-2.4.0.Final.jar"/> | |
</resources> | |
<dependencies> | |
<module name="org.keycloak.keycloak-common"/> | |
<module name="org.keycloak.keycloak-core"/> | |
<module name="org.keycloak.keycloak-server-spi"/> | |
+ <module name="org.keycloak.keycloak-server-spi-private"/> | |
<module name="org.keycloak.keycloak-kerberos-federation"/> | |
<module name="javax.ws.rs.api"/> | |
<module name="org.jboss.resteasy.resteasy-jaxrs"/> | |
Only in /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-model-infinispan/main: keycloak-model-infinispan-2.3.0.Final.jar | |
Only in /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-model-infinispan/main: keycloak-model-infinispan-2.4.0.Final.jar | |
diff -ru /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-model-infinispan/main/module.xml /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-model-infinispan/main/module.xml | |
--- /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-model-infinispan/main/module.xml 2016-10-26 04:17:47.000000000 -0400 | |
+++ /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-model-infinispan/main/module.xml 2016-11-23 15:37:56.000000000 -0500 | |
@@ -21,14 +21,18 @@ | |
</properties> | |
<resources> | |
- <resource-root path="keycloak-model-infinispan-2.3.0.Final.jar"/> | |
+ <resource-root path="keycloak-model-infinispan-2.4.0.Final.jar"/> | |
</resources> | |
<dependencies> | |
<module name="org.keycloak.keycloak-common"/> | |
<module name="org.keycloak.keycloak-core"/> | |
<module name="org.keycloak.keycloak-server-spi"/> | |
+ <module name="org.keycloak.keycloak-server-spi-private"/> | |
<module name="org.infinispan"/> | |
+ <module name="org.infinispan.commons"/> | |
+ <module name="org.infinispan.cachestore.remote"/> | |
+ <module name="org.infinispan.client.hotrod"/> | |
<module name="org.jboss.logging"/> | |
<module name="javax.api"/> | |
</dependencies> | |
Only in /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-model-jpa/main: keycloak-model-jpa-2.3.0.Final.jar | |
Only in /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-model-jpa/main: keycloak-model-jpa-2.4.0.Final.jar | |
diff -ru /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-model-jpa/main/module.xml /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-model-jpa/main/module.xml | |
--- /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-model-jpa/main/module.xml 2016-10-26 04:17:47.000000000 -0400 | |
+++ /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-model-jpa/main/module.xml 2016-11-23 15:37:56.000000000 -0500 | |
@@ -21,7 +21,7 @@ | |
</properties> | |
<resources> | |
- <resource-root path="keycloak-model-jpa-2.3.0.Final.jar"/> | |
+ <resource-root path="keycloak-model-jpa-2.4.0.Final.jar"/> | |
</resources> | |
<dependencies> | |
@@ -29,6 +29,7 @@ | |
<module name="org.keycloak.keycloak-common"/> | |
<module name="org.keycloak.keycloak-core"/> | |
<module name="org.keycloak.keycloak-server-spi"/> | |
+ <module name="org.keycloak.keycloak-server-spi-private"/> | |
<module name="javax.persistence.api"/> | |
<module name="org.jboss.logging"/> | |
<module name="org.liquibase"/> | |
Only in /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-model-mongo/main: keycloak-model-mongo-2.3.0.Final.jar | |
Only in /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-model-mongo/main: keycloak-model-mongo-2.4.0.Final.jar | |
diff -ru /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-model-mongo/main/module.xml /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-model-mongo/main/module.xml | |
--- /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-model-mongo/main/module.xml 2016-10-26 04:17:47.000000000 -0400 | |
+++ /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-model-mongo/main/module.xml 2016-11-23 15:37:56.000000000 -0500 | |
@@ -21,7 +21,7 @@ | |
</properties> | |
<resources> | |
- <resource-root path="keycloak-model-mongo-2.3.0.Final.jar"/> | |
+ <resource-root path="keycloak-model-mongo-2.4.0.Final.jar"/> | |
</resources> | |
<dependencies> | |
@@ -29,6 +29,7 @@ | |
<module name="org.keycloak.keycloak-core"/> | |
<module name="org.keycloak.keycloak-services"/> | |
<module name="org.keycloak.keycloak-server-spi"/> | |
+ <module name="org.keycloak.keycloak-server-spi-private"/> | |
<module name="org.mongodb.mongo-java-driver"/> | |
<module name="org.jboss.logging"/> | |
<module name="javax.api"/> | |
Only in /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-saml-core/main: keycloak-saml-core-2.3.0.Final.jar | |
Only in /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-saml-core/main: keycloak-saml-core-2.4.0.Final.jar | |
diff -ru /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-saml-core/main/module.xml /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-saml-core/main/module.xml | |
--- /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-saml-core/main/module.xml 2016-10-26 04:17:47.000000000 -0400 | |
+++ /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-saml-core/main/module.xml 2016-11-23 15:37:56.000000000 -0500 | |
@@ -21,7 +21,7 @@ | |
</properties> | |
<resources> | |
- <resource-root path="keycloak-saml-core-2.3.0.Final.jar"/> | |
+ <resource-root path="keycloak-saml-core-2.4.0.Final.jar"/> | |
</resources> | |
<dependencies> | |
Only in /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-saml-core-public/main: keycloak-saml-core-public-2.3.0.Final.jar | |
Only in /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-saml-core-public/main: keycloak-saml-core-public-2.4.0.Final.jar | |
diff -ru /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-saml-core-public/main/module.xml /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-saml-core-public/main/module.xml | |
--- /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-saml-core-public/main/module.xml 2016-10-26 04:17:47.000000000 -0400 | |
+++ /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-saml-core-public/main/module.xml 2016-11-23 15:37:56.000000000 -0500 | |
@@ -21,7 +21,7 @@ | |
</properties> | |
<resources> | |
- <resource-root path="keycloak-saml-core-public-2.3.0.Final.jar"/> | |
+ <resource-root path="keycloak-saml-core-public-2.4.0.Final.jar"/> | |
</resources> | |
<dependencies> | |
Only in /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-server-spi/main: keycloak-server-spi-2.3.0.Final.jar | |
Only in /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-server-spi/main: keycloak-server-spi-2.4.0.Final.jar | |
diff -ru /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-server-spi/main/module.xml /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-server-spi/main/module.xml | |
--- /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-server-spi/main/module.xml 2016-10-26 04:17:47.000000000 -0400 | |
+++ /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-server-spi/main/module.xml 2016-11-23 15:37:56.000000000 -0500 | |
@@ -16,12 +16,8 @@ | |
~ limitations under the License. | |
--> | |
<module xmlns="urn:jboss:module:1.3" name="org.keycloak.keycloak-server-spi"> | |
- <properties> | |
- <property name="jboss.api" value="private"/> | |
- </properties> | |
- | |
<resources> | |
- <resource-root path="keycloak-server-spi-2.3.0.Final.jar"/> | |
+ <resource-root path="keycloak-server-spi-2.4.0.Final.jar"/> | |
</resources> | |
<dependencies> | |
Only in /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak: keycloak-server-spi-private | |
Only in /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-services/main: keycloak-services-2.3.0.Final.jar | |
Only in /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-services/main: keycloak-services-2.4.0.Final.jar | |
diff -ru /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-services/main/module.xml /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-services/main/module.xml | |
--- /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-services/main/module.xml 2016-10-26 04:17:47.000000000 -0400 | |
+++ /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-services/main/module.xml 2016-11-23 15:37:56.000000000 -0500 | |
@@ -21,7 +21,7 @@ | |
</properties> | |
<resources> | |
- <resource-root path="keycloak-services-2.3.0.Final.jar"/> | |
+ <resource-root path="keycloak-services-2.4.0.Final.jar"/> | |
</resources> | |
<dependencies> | |
@@ -30,8 +30,9 @@ | |
<module name="org.keycloak.keycloak-js-adapter" services="import"/> | |
<module name="org.keycloak.keycloak-kerberos-federation" services="import"/> | |
<module name="org.keycloak.keycloak-ldap-federation" services="import"/> | |
- <module name="org.keycloak.keycloak-sssd-federation" services="import"/> | |
+ <module name="org.keycloak.keycloak-sssd-federation" optional="true" services="import"/> | |
<module name="org.keycloak.keycloak-server-spi" services="import"/> | |
+ <module name="org.keycloak.keycloak-server-spi-private" services="import"/> | |
<module name="org.keycloak.keycloak-model-jpa" services="import"/> | |
<module name="org.keycloak.keycloak-model-mongo" services="import"/> | |
<module name="org.keycloak.keycloak-model-infinispan" services="import"/> | |
Only in /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-sssd-federation/main: keycloak-sssd-federation-2.3.0.Final.jar | |
Only in /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-sssd-federation/main: keycloak-sssd-federation-2.4.0.Final.jar | |
diff -ru /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-sssd-federation/main/module.xml /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-sssd-federation/main/module.xml | |
--- /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-sssd-federation/main/module.xml 2016-10-26 04:17:48.000000000 -0400 | |
+++ /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-sssd-federation/main/module.xml 2016-11-23 15:37:56.000000000 -0500 | |
@@ -21,12 +21,14 @@ | |
</properties> | |
<resources> | |
- <resource-root path="keycloak-sssd-federation-2.3.0.Final.jar"/> | |
+ <resource-root path="keycloak-sssd-federation-2.4.0.Final.jar"/> | |
+ <resource-root path="/usr/share/java/jna.jar"/> | |
</resources> | |
<dependencies> | |
<module name="org.jboss.logging"/> | |
<module name="org.keycloak.keycloak-core" /> | |
<module name="org.keycloak.keycloak-server-spi" /> | |
+ <module name="org.keycloak.keycloak-server-spi-private"/> | |
</dependencies> | |
</module> | |
\ No newline at end of file | |
Only in /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-wildfly-adduser/main: keycloak-wildfly-adduser-2.3.0.Final.jar | |
Only in /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-wildfly-adduser/main: keycloak-wildfly-adduser-2.4.0.Final.jar | |
diff -ru /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-wildfly-adduser/main/module.xml /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-wildfly-adduser/main/module.xml | |
--- /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-wildfly-adduser/main/module.xml 2016-10-26 04:17:48.000000000 -0400 | |
+++ /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-wildfly-adduser/main/module.xml 2016-11-23 15:37:56.000000000 -0500 | |
@@ -23,13 +23,14 @@ | |
</properties> | |
<resources> | |
- <resource-root path="keycloak-wildfly-adduser-2.3.0.Final.jar"/> | |
+ <resource-root path="keycloak-wildfly-adduser-2.4.0.Final.jar"/> | |
</resources> | |
<dependencies> | |
<module name="org.keycloak.keycloak-common"/> | |
<module name="org.keycloak.keycloak-core"/> | |
<module name="org.keycloak.keycloak-server-spi"/> | |
+ <module name="org.keycloak.keycloak-server-spi-private"/> | |
<module name="org.jboss.aesh"/> | |
<module name="org.jboss.as.domain-management"/> | |
<module name="com.fasterxml.jackson.core.jackson-core"/> | |
Only in /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-wildfly-extensions/main: keycloak-wildfly-extensions-2.3.0.Final.jar | |
Only in /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-wildfly-extensions/main: keycloak-wildfly-extensions-2.4.0.Final.jar | |
diff -ru /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-wildfly-extensions/main/module.xml /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-wildfly-extensions/main/module.xml | |
--- /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-wildfly-extensions/main/module.xml 2016-10-26 04:17:48.000000000 -0400 | |
+++ /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-wildfly-extensions/main/module.xml 2016-11-23 15:37:56.000000000 -0500 | |
@@ -21,13 +21,14 @@ | |
</properties> | |
<resources> | |
- <resource-root path="keycloak-wildfly-extensions-2.3.0.Final.jar"/> | |
+ <resource-root path="keycloak-wildfly-extensions-2.4.0.Final.jar"/> | |
</resources> | |
<dependencies> | |
<module name="org.keycloak.keycloak-common"/> | |
<module name="org.keycloak.keycloak-core"/> | |
<module name="org.keycloak.keycloak-server-spi"/> | |
+ <module name="org.keycloak.keycloak-server-spi-private"/> | |
<module name="org.keycloak.keycloak-services"/> | |
<module name="org.jboss.modules"/> | |
</dependencies> | |
Only in /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-wildfly-server-subsystem/main: keycloak-wildfly-server-subsystem-2.3.0.Final.jar | |
Only in /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-wildfly-server-subsystem/main: keycloak-wildfly-server-subsystem-2.4.0.Final.jar | |
diff -ru /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-wildfly-server-subsystem/main/module.xml /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-wildfly-server-subsystem/main/module.xml | |
--- /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-wildfly-server-subsystem/main/module.xml 2016-10-26 04:17:47.000000000 -0400 | |
+++ /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/keycloak/keycloak-wildfly-server-subsystem/main/module.xml 2016-11-23 15:37:56.000000000 -0500 | |
@@ -24,7 +24,7 @@ | |
<resources> | |
<resource-root path="."/> | |
- <resource-root path="keycloak-wildfly-server-subsystem-2.3.0.Final.jar"/> | |
+ <resource-root path="keycloak-wildfly-server-subsystem-2.4.0.Final.jar"/> | |
</resources> | |
<dependencies> | |
diff -ru /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/kie/main/module.xml /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/kie/main/module.xml | |
--- /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/kie/main/module.xml 2016-10-26 04:17:48.000000000 -0400 | |
+++ /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/modules/system/layers/keycloak/org/kie/main/module.xml 2016-11-23 15:37:56.000000000 -0500 | |
@@ -32,11 +32,13 @@ | |
<module name="org.keycloak.keycloak-core"/> | |
<module name="org.keycloak.keycloak-common"/> | |
<module name="org.keycloak.keycloak-server-spi"/> | |
+ <module name="org.keycloak.keycloak-server-spi-private"/> | |
<module name="org.slf4j"/> | |
<module name="org.apache.commons.logging"/> | |
<module name="org.keycloak.keycloak-core"/> | |
<module name="org.keycloak.keycloak-common"/> | |
<module name="org.keycloak.keycloak-server-spi"/> | |
+ <module name="org.keycloak.keycloak-server-spi-private"/> | |
<module name="com.sun.xml.bind"/> | |
<module name="com.thoughtworks.xstream"/> | |
<module name="org.apache.ant"/> | |
diff -ru /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/standalone/configuration/standalone-ha.xml /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/standalone/configuration/standalone-ha.xml | |
--- /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/standalone/configuration/standalone-ha.xml 2016-10-26 05:59:25.000000000 -0400 | |
+++ /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/standalone/configuration/standalone-ha.xml 2016-11-23 17:31:42.000000000 -0500 | |
@@ -247,10 +247,10 @@ | |
<subsystem xmlns="urn:jboss:domain:infinispan:4.0"> | |
<cache-container name="keycloak" jndi-name="infinispan/Keycloak"> | |
<transport lock-timeout="60000"/> | |
- <invalidation-cache name="realms" mode="SYNC"/> | |
- <invalidation-cache name="users" mode="SYNC"> | |
+ <local-cache name="realms"/> | |
+ <local-cache name="users"> | |
<eviction max-entries="10000" strategy="LRU"/> | |
- </invalidation-cache> | |
+ </local-cache> | |
<distributed-cache name="sessions" mode="SYNC" owners="1"/> | |
<distributed-cache name="offlineSessions" mode="SYNC" owners="1"/> | |
<distributed-cache name="loginFailures" mode="SYNC" owners="1"/> | |
diff -ru /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/standalone/data/kernel/process-uuid /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/standalone/data/kernel/process-uuid | |
--- /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/standalone/data/kernel/process-uuid 2016-12-07 12:39:06.000000000 -0500 | |
+++ /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/standalone/data/kernel/process-uuid 2016-12-07 12:39:15.000000000 -0500 | |
@@ -1 +1 @@ | |
-1206bbfb-1c9d-430d-817e-530a57b2db0a | |
+3770eb40-99e3-4e17-b5ad-007de82e9329 | |
diff -ru /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/standalone/log/server.log /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/standalone/log/server.log | |
--- /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/standalone/log/server.log 2016-12-07 12:39:11.000000000 -0500 | |
+++ /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/standalone/log/server.log 2016-12-07 12:39:22.000000000 -0500 | |
@@ -1,7 +1,7 @@ | |
-2016-12-07 17:39:06,094 INFO [org.jboss.modules] (main) JBoss Modules version 1.5.1.Final | |
-2016-12-07 17:39:06,383 INFO [org.jboss.msc] (main) JBoss MSC version 1.2.6.Final | |
-2016-12-07 17:39:06,447 INFO [org.jboss.as] (MSC service thread 1-2) WFLYSRV0049: Keycloak 2.3.0.Final (WildFly Core 2.0.10.Final) starting | |
-2016-12-07 17:39:06,449 DEBUG [org.jboss.as.config] (MSC service thread 1-2) Configured system properties: | |
+2016-12-07 17:39:15,713 INFO [org.jboss.modules] (main) JBoss Modules version 1.5.1.Final | |
+2016-12-07 17:39:15,984 INFO [org.jboss.msc] (main) JBoss MSC version 1.2.6.Final | |
+2016-12-07 17:39:16,054 INFO [org.jboss.as] (MSC service thread 1-2) WFLYSRV0049: Keycloak 2.4.0.Final (WildFly Core 2.0.10.Final) starting | |
+2016-12-07 17:39:16,056 DEBUG [org.jboss.as.config] (MSC service thread 1-2) Configured system properties: | |
[Standalone] = | |
awt.toolkit = sun.awt.X11.XToolkit | |
file.encoding = ANSI_X3.4-1968 | |
@@ -12,14 +12,14 @@ | |
java.awt.printerjob = sun.print.PSPrinterJob | |
java.class.path = /opt/jboss/keycloak/jboss-modules.jar | |
java.class.version = 52.0 | |
- java.endorsed.dirs = /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.101-3.b13.el7_2.x86_64/jre/lib/endorsed | |
- java.ext.dirs = /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.101-3.b13.el7_2.x86_64/jre/lib/ext:/usr/java/packages/lib/ext | |
- java.home = /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.101-3.b13.el7_2.x86_64/jre | |
+ java.endorsed.dirs = /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.111-1.b15.el7_2.x86_64/jre/lib/endorsed | |
+ java.ext.dirs = /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.111-1.b15.el7_2.x86_64/jre/lib/ext:/usr/java/packages/lib/ext | |
+ java.home = /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.111-1.b15.el7_2.x86_64/jre | |
java.io.tmpdir = /tmp | |
java.library.path = /usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib | |
java.net.preferIPv4Stack = true | |
java.runtime.name = OpenJDK Runtime Environment | |
- java.runtime.version = 1.8.0_101-b13 | |
+ java.runtime.version = 1.8.0_111-b15 | |
java.specification.name = Java Platform API Specification | |
java.specification.vendor = Oracle Corporation | |
java.specification.version = 1.8 | |
@@ -27,14 +27,14 @@ | |
java.vendor = Oracle Corporation | |
java.vendor.url = http://java.oracle.com/ | |
java.vendor.url.bug = http://bugreport.sun.com/bugreport/ | |
- java.version = 1.8.0_101 | |
+ java.version = 1.8.0_111 | |
java.vm.info = mixed mode | |
java.vm.name = OpenJDK 64-Bit Server VM | |
java.vm.specification.name = Java Virtual Machine Specification | |
java.vm.specification.vendor = Oracle Corporation | |
java.vm.specification.version = 1.8 | |
java.vm.vendor = Oracle Corporation | |
- java.vm.version = 25.101-b13 | |
+ java.vm.version = 25.111-b15 | |
javax.management.builder.initial = org.jboss.as.jmx.PluggableMBeanServerBuilder | |
javax.xml.datatype.DatatypeFactory = __redirected.__DatatypeFactory | |
javax.xml.parsers.DocumentBuilderFactory = __redirected.__DocumentBuilderFactory | |
@@ -47,17 +47,17 @@ | |
javax.xml.xpath.XPathFactory:http://java.sun.com/jaxp/xpath/dom = __redirected.__XPathFactory | |
jboss.bind.address = 0.0.0.0 | |
jboss.home.dir = /opt/jboss/keycloak | |
- jboss.host.name = f18a35edb6de | |
+ jboss.host.name = 4f5978873998 | |
jboss.modules.dir = /opt/jboss/keycloak/modules | |
jboss.modules.system.pkgs = org.jboss.byteman | |
- jboss.node.name = f18a35edb6de | |
- jboss.qualified.host.name = f18a35edb6de | |
+ jboss.node.name = 4f5978873998 | |
+ jboss.qualified.host.name = 4f5978873998 | |
jboss.server.base.dir = /opt/jboss/keycloak/standalone | |
jboss.server.config.dir = /opt/jboss/keycloak/standalone/configuration | |
jboss.server.data.dir = /opt/jboss/keycloak/standalone/data | |
jboss.server.deploy.dir = /opt/jboss/keycloak/standalone/data/content | |
jboss.server.log.dir = /opt/jboss/keycloak/standalone/log | |
- jboss.server.name = f18a35edb6de | |
+ jboss.server.name = 4f5978873998 | |
jboss.server.persist.config = true | |
jboss.server.temp.dir = /opt/jboss/keycloak/standalone/tmp | |
line.separator = | |
@@ -72,8 +72,8 @@ | |
os.version = 4.4.27-boot2docker | |
path.separator = : | |
sun.arch.data.model = 64 | |
- sun.boot.class.path = /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.101-3.b13.el7_2.x86_64/jre/lib/resources.jar:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.101-3.b13.el7_2.x86_64/jre/lib/rt.jar:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.101-3.b13.el7_2.x86_64/jre/lib/sunrsasign.jar:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.101-3.b13.el7_2.x86_64/jre/lib/jsse.jar:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.101-3.b13.el7_2.x86_64/jre/lib/jce.jar:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.101-3.b13.el7_2.x86_64/jre/lib/charsets.jar:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.101-3.b13.el7_2.x86_64/jre/lib/jfr.jar:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.101-3.b13.el7_2.x86_64/jre/classes | |
- sun.boot.library.path = /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.101-3.b13.el7_2.x86_64/jre/lib/amd64 | |
+ sun.boot.class.path = /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.111-1.b15.el7_2.x86_64/jre/lib/resources.jar:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.111-1.b15.el7_2.x86_64/jre/lib/rt.jar:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.111-1.b15.el7_2.x86_64/jre/lib/sunrsasign.jar:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.111-1.b15.el7_2.x86_64/jre/lib/jsse.jar:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.111-1.b15.el7_2.x86_64/jre/lib/jce.jar:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.111-1.b15.el7_2.x86_64/jre/lib/charsets.jar:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.111-1.b15.el7_2.x86_64/jre/lib/jfr.jar:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.111-1.b15.el7_2.x86_64/jre/classes | |
+ sun.boot.library.path = /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.111-1.b15.el7_2.x86_64/jre/lib/amd64 | |
sun.cpu.endian = little | |
sun.cpu.isalist = | |
sun.io.unicode.encoding = UnicodeLittle | |
@@ -88,44 +88,44 @@ | |
user.language = en | |
user.name = jboss | |
user.timezone = UTC | |
-2016-12-07 17:39:06,449 DEBUG [org.jboss.as.config] (MSC service thread 1-2) VM Arguments: -D[Standalone] -Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true -Dorg.jboss.boot.log.file=/opt/jboss/keycloak/standalone/log/server.log -Dlogging.configuration=file:/opt/jboss/keycloak/standalone/configuration/logging.properties | |
-2016-12-07 17:39:08,105 INFO [org.jboss.as.server] (Controller Boot Thread) WFLYSRV0039: Creating http management service using socket-binding (management-http) | |
-2016-12-07 17:39:08,140 INFO [org.xnio] (MSC service thread 1-1) XNIO version 3.3.4.Final | |
-2016-12-07 17:39:08,160 INFO [org.xnio.nio] (MSC service thread 1-1) XNIO NIO Implementation Version 3.3.4.Final | |
-2016-12-07 17:39:08,238 INFO [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 32) WFLYCLINF0001: Activating Infinispan subsystem. | |
-2016-12-07 17:39:08,245 INFO [org.wildfly.extension.io] (ServerService Thread Pool -- 31) WFLYIO001: Worker 'default' has auto-configured to 2 core threads with 16 task threads based on your 1 available processors | |
-2016-12-07 17:39:08,282 INFO [org.jboss.as.jsf] (ServerService Thread Pool -- 38) WFLYJSF0007: Activated the following JSF Implementations: [main] | |
-2016-12-07 17:39:08,298 INFO [org.jboss.as.naming] (ServerService Thread Pool -- 40) WFLYNAM0001: Activating Naming Subsystem | |
-2016-12-07 17:39:08,308 INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 28) WFLYJCA0004: Deploying JDBC-compliant driver class org.h2.Driver (version 1.3) | |
-2016-12-07 17:39:08,334 INFO [org.jboss.as.connector] (MSC service thread 1-2) WFLYJCA0009: Starting JCA Subsystem (WildFly/IronJacamar 1.3.2.Final) | |
-2016-12-07 17:39:08,397 INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 28) WFLYJCA0005: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 9.3) | |
-2016-12-07 17:39:08,399 WARN [org.jboss.as.txn] (ServerService Thread Pool -- 45) WFLYTX0013: Node identifier property is set to the default value. Please make sure it is unique. | |
-2016-12-07 17:39:08,442 INFO [org.jboss.as.security] (ServerService Thread Pool -- 44) WFLYSEC0002: Activating Security Subsystem | |
-2016-12-07 17:39:08,457 INFO [org.wildfly.extension.undertow] (ServerService Thread Pool -- 46) WFLYUT0003: Undertow 1.3.15.Final starting | |
-2016-12-07 17:39:08,468 INFO [org.jboss.remoting] (MSC service thread 1-1) JBoss Remoting version 4.0.18.Final | |
-2016-12-07 17:39:08,490 INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-2) WFLYJCA0018: Started Driver service with driver-name = h2 | |
-2016-12-07 17:39:08,507 INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-2) WFLYJCA0018: Started Driver service with driver-name = postgresql | |
-2016-12-07 17:39:08,509 INFO [org.jboss.as.security] (MSC service thread 1-2) WFLYSEC0001: Current PicketBox version=4.9.4.Final | |
-2016-12-07 17:39:08,519 INFO [org.wildfly.extension.undertow] (MSC service thread 1-1) WFLYUT0003: Undertow 1.3.15.Final starting | |
-2016-12-07 17:39:08,653 INFO [org.jboss.as.naming] (MSC service thread 1-1) WFLYNAM0003: Starting Naming Service | |
-2016-12-07 17:39:08,663 INFO [org.wildfly.extension.undertow] (ServerService Thread Pool -- 46) WFLYUT0014: Creating file handler for path '/opt/jboss/keycloak/welcome-content' with options [directory-listing: 'false', follow-symlink: 'false', case-sensitive: 'true', safe-symlink-paths: '[]'] | |
-2016-12-07 17:39:08,671 INFO [org.jboss.as.mail.extension] (MSC service thread 1-2) WFLYMAIL0001: Bound mail session [java:jboss/mail/Default] | |
-2016-12-07 17:39:08,841 INFO [org.jboss.as.ejb3] (MSC service thread 1-1) WFLYEJB0482: Strict pool mdb-strict-max-pool is using a max instance size of 4 (per class), which is derived from the number of CPUs on this host. | |
-2016-12-07 17:39:08,842 INFO [org.jboss.as.ejb3] (MSC service thread 1-2) WFLYEJB0481: Strict pool slsb-strict-max-pool is using a max instance size of 16 (per class), which is derived from thread worker pool sizing. | |
-2016-12-07 17:39:08,862 INFO [org.wildfly.extension.undertow] (MSC service thread 1-2) WFLYUT0012: Started server default-server. | |
-2016-12-07 17:39:09,036 INFO [org.wildfly.extension.undertow] (MSC service thread 1-1) WFLYUT0006: Undertow HTTP listener default listening on 0.0.0.0:8080 | |
-2016-12-07 17:39:09,037 INFO [org.wildfly.extension.undertow] (MSC service thread 1-1) WFLYUT0018: Host default-host starting | |
-2016-12-07 17:39:09,404 INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-2) WFLYJCA0001: Bound data source [java:jboss/datasources/KeycloakDS] | |
-2016-12-07 17:39:09,400 INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-1) WFLYJCA0001: Bound data source [java:jboss/datasources/ExampleDS] | |
-2016-12-07 17:39:10,028 INFO [org.infinispan.factories.GlobalComponentRegistry] (MSC service thread 1-1) ISPN000128: Infinispan version: Infinispan 'Mahou' 8.1.0.Final | |
-2016-12-07 17:39:10,022 INFO [org.infinispan.factories.GlobalComponentRegistry] (MSC service thread 1-2) ISPN000128: Infinispan version: Infinispan 'Mahou' 8.1.0.Final | |
-2016-12-07 17:39:10,164 INFO [org.jboss.as.server.deployment] (MSC service thread 1-1) WFLYSRV0027: Starting deployment of "keycloak-server.war" (runtime-name: "keycloak-server.war") | |
-2016-12-07 17:39:10,229 INFO [org.jboss.as.server.deployment.scanner] (MSC service thread 1-1) WFLYDS0013: Started FileSystemDeploymentService for directory /opt/jboss/keycloak/standalone/deployments | |
-2016-12-07 17:39:11,671 INFO [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 49) WFLYCLINF0002: Started users cache from keycloak container | |
-2016-12-07 17:39:11,685 INFO [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 53) WFLYCLINF0002: Started work cache from keycloak container | |
-2016-12-07 17:39:11,686 INFO [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 54) WFLYCLINF0002: Started offlineSessions cache from keycloak container | |
-2016-12-07 17:39:11,686 INFO [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 48) WFLYCLINF0002: Started realms cache from keycloak container | |
-2016-12-07 17:39:11,686 INFO [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 55) WFLYCLINF0002: Started loginFailures cache from keycloak container | |
-2016-12-07 17:39:11,686 INFO [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 50) WFLYCLINF0002: Started keys cache from keycloak container | |
-2016-12-07 17:39:11,687 INFO [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 51) WFLYCLINF0002: Started authorization cache from keycloak container | |
-2016-12-07 17:39:11,687 INFO [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 52) WFLYCLINF0002: Started sessions cache from keycloak container | |
+2016-12-07 17:39:16,056 DEBUG [org.jboss.as.config] (MSC service thread 1-2) VM Arguments: -D[Standalone] -Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true -Dorg.jboss.boot.log.file=/opt/jboss/keycloak/standalone/log/server.log -Dlogging.configuration=file:/opt/jboss/keycloak/standalone/configuration/logging.properties | |
+2016-12-07 17:39:17,596 INFO [org.jboss.as.server] (Controller Boot Thread) WFLYSRV0039: Creating http management service using socket-binding (management-http) | |
+2016-12-07 17:39:17,638 INFO [org.xnio] (MSC service thread 1-1) XNIO version 3.3.4.Final | |
+2016-12-07 17:39:17,649 INFO [org.xnio.nio] (MSC service thread 1-1) XNIO NIO Implementation Version 3.3.4.Final | |
+2016-12-07 17:39:17,723 INFO [org.jboss.remoting] (MSC service thread 1-1) JBoss Remoting version 4.0.18.Final | |
+2016-12-07 17:39:17,787 INFO [org.wildfly.extension.io] (ServerService Thread Pool -- 31) WFLYIO001: Worker 'default' has auto-configured to 2 core threads with 16 task threads based on your 1 available processors | |
+2016-12-07 17:39:17,788 INFO [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 32) WFLYCLINF0001: Activating Infinispan subsystem. | |
+2016-12-07 17:39:17,844 INFO [org.jboss.as.naming] (ServerService Thread Pool -- 40) WFLYNAM0001: Activating Naming Subsystem | |
+2016-12-07 17:39:17,846 INFO [org.jboss.as.jsf] (ServerService Thread Pool -- 38) WFLYJSF0007: Activated the following JSF Implementations: [main] | |
+2016-12-07 17:39:17,918 INFO [org.jboss.as.connector] (MSC service thread 1-2) WFLYJCA0009: Starting JCA Subsystem (WildFly/IronJacamar 1.3.2.Final) | |
+2016-12-07 17:39:17,927 INFO [org.jboss.as.naming] (MSC service thread 1-2) WFLYNAM0003: Starting Naming Service | |
+2016-12-07 17:39:17,932 INFO [org.jboss.as.mail.extension] (MSC service thread 1-2) WFLYMAIL0001: Bound mail session [java:jboss/mail/Default] | |
+2016-12-07 17:39:17,963 WARN [org.jboss.as.txn] (ServerService Thread Pool -- 45) WFLYTX0013: Node identifier property is set to the default value. Please make sure it is unique. | |
+2016-12-07 17:39:18,012 INFO [org.jboss.as.security] (ServerService Thread Pool -- 44) WFLYSEC0002: Activating Security Subsystem | |
+2016-12-07 17:39:18,024 INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 28) WFLYJCA0004: Deploying JDBC-compliant driver class org.h2.Driver (version 1.3) | |
+2016-12-07 17:39:18,033 INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 28) WFLYJCA0005: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 9.3) | |
+2016-12-07 17:39:18,043 INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-1) WFLYJCA0018: Started Driver service with driver-name = h2 | |
+2016-12-07 17:39:18,055 INFO [org.jboss.as.security] (MSC service thread 1-2) WFLYSEC0001: Current PicketBox version=4.9.4.Final | |
+2016-12-07 17:39:18,086 INFO [org.wildfly.extension.undertow] (MSC service thread 1-1) WFLYUT0003: Undertow 1.3.15.Final starting | |
+2016-12-07 17:39:18,087 INFO [org.wildfly.extension.undertow] (ServerService Thread Pool -- 46) WFLYUT0003: Undertow 1.3.15.Final starting | |
+2016-12-07 17:39:18,184 INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-2) WFLYJCA0018: Started Driver service with driver-name = postgresql | |
+2016-12-07 17:39:18,324 INFO [org.jboss.as.ejb3] (MSC service thread 1-2) WFLYEJB0481: Strict pool slsb-strict-max-pool is using a max instance size of 16 (per class), which is derived from thread worker pool sizing. | |
+2016-12-07 17:39:18,329 INFO [org.jboss.as.ejb3] (MSC service thread 1-1) WFLYEJB0482: Strict pool mdb-strict-max-pool is using a max instance size of 4 (per class), which is derived from the number of CPUs on this host. | |
+2016-12-07 17:39:18,369 INFO [org.wildfly.extension.undertow] (ServerService Thread Pool -- 46) WFLYUT0014: Creating file handler for path '/opt/jboss/keycloak/welcome-content' with options [directory-listing: 'false', follow-symlink: 'false', case-sensitive: 'true', safe-symlink-paths: '[]'] | |
+2016-12-07 17:39:18,433 INFO [org.wildfly.extension.undertow] (MSC service thread 1-1) WFLYUT0012: Started server default-server. | |
+2016-12-07 17:39:18,459 INFO [org.wildfly.extension.undertow] (MSC service thread 1-1) WFLYUT0018: Host default-host starting | |
+2016-12-07 17:39:18,599 INFO [org.wildfly.extension.undertow] (MSC service thread 1-1) WFLYUT0006: Undertow HTTP listener default listening on 0.0.0.0:8080 | |
+2016-12-07 17:39:18,766 INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-2) WFLYJCA0001: Bound data source [java:jboss/datasources/ExampleDS] | |
+2016-12-07 17:39:18,767 INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-1) WFLYJCA0001: Bound data source [java:jboss/datasources/KeycloakDS] | |
+2016-12-07 17:39:18,838 INFO [org.jboss.as.server.deployment.scanner] (MSC service thread 1-2) WFLYDS0013: Started FileSystemDeploymentService for directory /opt/jboss/keycloak/standalone/deployments | |
+2016-12-07 17:39:18,837 INFO [org.jboss.as.server.deployment] (MSC service thread 1-1) WFLYSRV0027: Starting deployment of "keycloak-server.war" (runtime-name: "keycloak-server.war") | |
+2016-12-07 17:39:19,127 INFO [org.infinispan.factories.GlobalComponentRegistry] (MSC service thread 1-1) ISPN000128: Infinispan version: Infinispan 'Mahou' 8.1.0.Final | |
+2016-12-07 17:39:20,044 INFO [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 48) WFLYCLINF0002: Started users cache from keycloak container | |
+2016-12-07 17:39:20,046 INFO [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 55) WFLYCLINF0002: Started keys cache from keycloak container | |
+2016-12-07 17:39:20,060 INFO [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 53) WFLYCLINF0002: Started work cache from keycloak container | |
+2016-12-07 17:39:20,061 INFO [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 52) WFLYCLINF0002: Started authorization cache from keycloak container | |
+2016-12-07 17:39:20,061 INFO [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 51) WFLYCLINF0002: Started sessions cache from keycloak container | |
+2016-12-07 17:39:20,061 INFO [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 50) WFLYCLINF0002: Started loginFailures cache from keycloak container | |
+2016-12-07 17:39:20,062 INFO [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 54) WFLYCLINF0002: Started offlineSessions cache from keycloak container | |
+2016-12-07 17:39:20,062 INFO [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 49) WFLYCLINF0002: Started realms cache from keycloak container | |
+2016-12-07 17:39:22,793 INFO [org.keycloak.services] (ServerService Thread Pool -- 48) KC-SERVICES0001: Loading config from standalone.xml or domain.xml | |
diff -ru /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/themes/base/account/totp.ftl /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/base/account/totp.ftl | |
--- /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/themes/base/account/totp.ftl 2016-10-26 04:17:48.000000000 -0400 | |
+++ /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/base/account/totp.ftl 2016-11-23 15:37:56.000000000 -0500 | |
@@ -2,66 +2,66 @@ | |
<@layout.mainLayout active='totp' bodyClass='totp'; section> | |
<#if totp.enabled> | |
- <h2>${msg("authenticatorTitle")}</h2> | |
+<h2>${msg("authenticatorTitle")}</h2> | |
- <table class="table table-bordered table-striped"> | |
- <thead | |
- <tr> | |
- <th colspan="2">${msg("configureAuthenticators")}</th> | |
- </tr> | |
- </thead> | |
- <tbody> | |
- <tr> | |
- <td class="provider">${msg("mobile")}</td> | |
- <td class="action"> | |
- <a id="remove-mobile" href="${url.totpRemoveUrl}"><i class="pficon pficon-delete"></i></a> | |
+<table class="table table-bordered table-striped"> | |
+ <thead | |
+ <tr> | |
+ <th colspan="2">${msg("configureAuthenticators")}</th> | |
+ </tr> | |
+ </thead> | |
+ <tbody> | |
+ <tr> | |
+ <td class="provider">${msg("mobile")}</td> | |
+ <td class="action"> | |
+ <a id="remove-mobile" href="${url.totpRemoveUrl}"><i class="pficon pficon-delete"></i></a> | |
</td> | |
</tr> | |
- </tbody> | |
- </table> | |
+ </tbody> | |
+ </table> | |
<#else> | |
- <h2>${msg("authenticatorTitle")}</h2> | |
+<h2>${msg("authenticatorTitle")}</h2> | |
- <hr/> | |
+<hr/> | |
- <ol> | |
- <li> | |
- <p>${msg("totpStep1")}</p> | |
- </li> | |
- <li> | |
- <p>${msg("totpStep2")}</p> | |
- <img src="data:image/png;base64, ${totp.totpSecretQrCode}" alt="Figure: Barcode"><br/> | |
- <span class="code">${totp.totpSecretEncoded}</span> | |
- </li> | |
- <li> | |
- <p>${msg("totpStep3")}</p> | |
- </li> | |
- </ol> | |
- | |
- <hr/> | |
- | |
- <form action="${url.totpUrl}" class="form-horizontal" method="post"> | |
- <input type="hidden" id="stateChecker" name="stateChecker" value="${stateChecker?html}"> | |
- <div class="form-group"> | |
- <div class="col-sm-2 col-md-2"> | |
- <label for="totp" class="control-label">${msg("authenticatorCode")}</label> | |
- </div> | |
+<ol> | |
+ <li> | |
+ <p>${msg("totpStep1")}</p> | |
+ </li> | |
+ <li> | |
+ <p>${msg("totpStep2")}</p> | |
+ <p><img src="data:image/png;base64, ${totp.totpSecretQrCode}" alt="Figure: Barcode"></p> | |
+ <p><span class="code">${totp.totpSecretEncoded}</span></p> | |
+ </li> | |
+ <li> | |
+ <p>${msg("totpStep3")}</p> | |
+ </li> | |
+</ol> | |
+ | |
+<hr/> | |
+ | |
+<form action="${url.totpUrl}" class="form-horizontal" method="post"> | |
+ <input type="hidden" id="stateChecker" name="stateChecker" value="${stateChecker?html}"> | |
+ <div class="form-group"> | |
+ <div class="col-sm-2 col-md-2"> | |
+ <label for="totp" class="control-label">${msg("authenticatorCode")}</label> | |
+ </div> | |
- <div class="col-sm-10 col-md-10"> | |
- <input type="text" class="form-control" id="totp" name="totp" autocomplete="off" autofocus autocomplete="off"> | |
- <input type="hidden" id="totpSecret" name="totpSecret" value="${totp.totpSecret}" /> | |
- </div> | |
+ <div class="col-sm-10 col-md-10"> | |
+ <input type="text" class="form-control" id="totp" name="totp" autocomplete="off" autofocus autocomplete="off"> | |
+ <input type="hidden" id="totpSecret" name="totpSecret" value="${totp.totpSecret}" /> | |
</div> | |
+ </div> | |
- <div class="form-group"> | |
- <div id="kc-form-buttons" class="col-md-offset-2 col-md-10 submit"> | |
- <div class=""> | |
- <button type="submit" class="${properties.kcButtonClass!} ${properties.kcButtonPrimaryClass!} ${properties.kcButtonLargeClass!}" name="submitAction" value="Save">${msg("doSave")}</button> | |
- <button type="submit" class="${properties.kcButtonClass!} ${properties.kcButtonDefaultClass!} ${properties.kcButtonLargeClass!}" name="submitAction" value="Cancel">${msg("doCancel")}</button> | |
- </div> | |
+ <div class="form-group"> | |
+ <div id="kc-form-buttons" class="col-md-offset-2 col-md-10 submit"> | |
+ <div class=""> | |
+ <button type="submit" class="${properties.kcButtonClass!} ${properties.kcButtonPrimaryClass!} ${properties.kcButtonLargeClass!}" name="submitAction" value="Save">${msg("doSave")}</button> | |
+ <button type="submit" class="${properties.kcButtonClass!} ${properties.kcButtonDefaultClass!} ${properties.kcButtonLargeClass!}" name="submitAction" value="Cancel">${msg("doCancel")}</button> | |
</div> | |
</div> | |
- </form> | |
+ </div> | |
+ </form> | |
</#if> | |
</@layout.mainLayout> | |
diff -ru /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/themes/base/admin/messages/admin-messages_en.properties /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/base/admin/messages/admin-messages_en.properties | |
--- /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/themes/base/admin/messages/admin-messages_en.properties 2016-10-26 04:17:48.000000000 -0400 | |
+++ /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/base/admin/messages/admin-messages_en.properties 2016-11-23 15:37:56.000000000 -0500 | |
@@ -209,6 +209,8 @@ | |
include-authnstatement.tooltip=Should a statement specifying the method and timestamp be included in login responses? | |
sign-documents=Sign Documents | |
sign-documents.tooltip=Should SAML documents be signed by the realm? | |
+sign-documents-redirect-enable-key-info-ext=Optimize REDIRECT signing key lookup | |
+sign-documents-redirect-enable-key-info-ext.tooltip=When signing SAML documents in REDIRECT binding for SP that is secured by Keycloak adapter, should the ID of the signing key be included in SAML protocol message in <Extensions> element? This optimizes validation of the signature as the validating party uses a single key instead of trying every known key for validation. | |
sign-assertions=Sign Assertions | |
sign-assertions.tooltip=Should assertions inside SAML documents be signed? This setting isn't needed if document is already being signed. | |
signature-algorithm=Signature Algorithm | |
@@ -506,8 +508,8 @@ | |
identity-provider.force-authentication.tooltip=Indicates whether the identity provider must authenticate the presenter directly rather than rely on a previous security context. | |
validate-signature=Validate Signature | |
saml.validate-signature.tooltip=Enable/disable signature validation of SAML responses. | |
-validating-x509-certificate=Validating X509 Certificate | |
-validating-x509-certificate.tooltip=The certificate in PEM format that must be used to check for signatures. | |
+validating-x509-certificate=Validating X509 Certificates | |
+validating-x509-certificate.tooltip=The certificate in PEM format that must be used to check for signatures. Multiple certificates can be entered, separated by comma (,). | |
saml.import-from-url.tooltip=Import metadata from a remote IDP SAML entity descriptor. | |
social.client-id.tooltip=The client identifier registered with the identity provider. | |
social.client-secret.tooltip=The client secret registered with the identity provider. | |
@@ -1178,4 +1180,48 @@ | |
add-keystore=Add Keystore | |
add-keystore.placeholder=Add keystore... | |
view=View | |
-active=Active | |
\ No newline at end of file | |
+active=Active | |
+ | |
+Sunday=Sunday | |
+Monday=Monday | |
+Tuesday=Tuesday | |
+Wednesday=Wednesday | |
+Thursday=Thursday | |
+Friday=Friday | |
+Saturday=Saturday | |
+ | |
+user-storage-cache-policy=Cache Settings | |
+userStorage.cachePolicy=Cache Policy | |
+userStorage.cachePolicy.option.DEFAULT=DEFAULT | |
+userStorage.cachePolicy.option.EVICT_WEEKLY=EVICT_WEEKLY | |
+userStorage.cachePolicy.option.EVICT_DAILY=EVICT_DAILY | |
+userStorage.cachePolicy.option.MAX_LIFESPAN=MAX_LIFESPAN | |
+userStorage.cachePolicy.option.NO_CACHE=NO_CACHE | |
+userStorage.cachePolicy.tooltip=Cache Policy for this storage provider. 'DEFAULT' is whatever the default settings are for the global user cache. 'EVICT_DAILY' is a time of day every day that the user cache will be invalidated. 'EVICT_WEEKLY' is a day of the week and time the cache will be invalidated. 'MAX-LIFESPAN' is the time in milliseconds that will be the lifespan of a cache entry. | |
+userStorage.cachePolicy.evictionDay=Eviction Day | |
+userStorage.cachePolicy.evictionDay.tooltip=Day of the week the entry will become invalid on | |
+userStorage.cachePolicy.evictionHour=Eviction Hour | |
+userStorage.cachePolicy.evictionHour.tooltip=Hour of day the entry will become invalid on. | |
+userStorage.cachePolicy.evictionMinute=Eviction Minute | |
+userStorage.cachePolicy.evictionMinute.tooltip=Minute of day the entry will become invalid on. | |
+userStorage.cachePolicy.maxLifespan=Max Lifespan | |
+userStorage.cachePolicy.maxLifespan.tooltip=Max lifespan of a user cache entry in milliseconds. | |
+user-origin-link=Storage Origin | |
+ | |
+disable=Disable | |
+disableable-credential-types=Disableable Types | |
+credentials.disableable.tooltip=List of credential types that you can disable | |
+disable-credential-types=Disable Credential Types | |
+credentials.disable.tooltip=Click button to disable selected credential types | |
+credential-types=Credential Types | |
+manage-user-password=Manage Password | |
+disable-credentials=Disable Credentials | |
+credential-reset-actions=Credential Reset | |
+ldap-mappers=LDAP Mappers | |
+create-ldap-mapper=Create LDAP mapper | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
diff -ru /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/themes/base/admin/messages/admin-messages_lt.properties /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/base/admin/messages/admin-messages_lt.properties | |
--- /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/themes/base/admin/messages/admin-messages_lt.properties 2016-10-26 04:17:48.000000000 -0400 | |
+++ /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/base/admin/messages/admin-messages_lt.properties 2016-11-23 15:37:56.000000000 -0500 | |
@@ -120,7 +120,7 @@ | |
realm-tab-themes=Temos | |
realm-tab-cache=Pod\u0117lis | |
realm-tab-tokens=Raktai | |
-realm-tab-client-initial-access=Pradiniai prieigos raktai | |
+realm-tab-client-registration=Klient\u0173 registracija | |
realm-tab-security-defenses=Saugos priemon\u0117s | |
realm-tab-general=Bendra informacija | |
add-realm=Prid\u0117ti srit\u012F | |
@@ -207,6 +207,8 @@ | |
include-authnstatement.tooltip=Ar prisijungimo b\u016Bdas ir laikas \u0161ur\u0117t\u0173 b\u016Bti \u012Ftraukiami \u012F prisijungimo operacijos atsakym\u0105? | |
sign-documents=Pasira\u0161yti dokumentus | |
sign-documents.tooltip=Ar SAML dokumentai turi b\u016Bt\u012F pasira\u0161omi \u0161ios srities? | |
+sign-documents-redirect-enable-key-info-ext=Optimizuoti REDIRECT pasira\u0161ymo rakto paie\u0161k\u0105 | |
+sign-documents-redirect-enable-key-info-ext.tooltip=Ar privalo b\u016Bti itrauktas pasira\u0161ymo rakto ID \u012F SAML protokolo \u017Einut\u0117s <Extensions> element\u0105 kuomet pasira\u0161omi Keycloak REDIRECT SP s\u0105sajos dokumentai? Tokiu b\u016Bdu tikrinan\u010Dioji pus\u0117 optimizuoja tikrinimo proce\u0105 naudodama tik vien\u0105 rakt\u0105 vietoj to, kad bandyt\u0173 vis\u0173 rakt\u0173 kombinacijas. | |
sign-assertions=Pasira\u0161yti sprendinius | |
sign-assertions.tooltip=Ar SAML sprendiniai SAML dokumentuose turi b\u016Bti pasira\u0161omi? \u0160is nustatymas neb\u016Btinas, kuomet naudojamas viso dokumento pasira\u0161ymas. | |
signature-algorithm=Para\u0161o algoritmas | |
@@ -432,6 +434,10 @@ | |
identity-provider.store-tokens.tooltip=Jei \u012Fgalinta, tuomet po naudotoj\u0173 prisijungimo, prieigos raktai bus i\u0161saugoti. | |
stored-tokens-readable=Saugoti raktus skaitomame formate | |
identity-provider.stored-tokens-readable.tooltip=Jei \u012Fgalinta, tuomet naudotojai gali per\u017Ei\u016Br\u0117ti i\u0161saugotus prieigos raktus. \u012Egalinama broker.read-token rol\u0117. | |
+disableUserInfo=U\u017Edrausti naudotojo informacijos prieig\u0105 | |
+identity-provider.disableUserInfo.tooltip=Ar u\u017Edrausti prieig\u0105 prie papildomos naudotojo profilio informacijos per User Info paslaug\u0105? Numatyta reik\u0161m\u0117 - naudoti \u0161i\u0105 OIDC paslaug\u0105. | |
+userIp=Naudoti userIp parametr\u0105 | |
+identity-provider.google-userIp.tooltip=Ar kvie\u010Diant Google naudotojo informacijos paslaug\u0105 naudoti 'userIp' u\u017Eklausos parametr\u0105? Nusta\u010Dius bus naudojamas naudotojo IP adresas. Nustatymas naudingas tuo atveju, jei Google ribot\u0173 u\u017Eklaus\u0173 kiek\u0161 i\u0161 vieno IP adreso. | |
update-profile-on-first-login=Profilio duomen\u0173 atnaujinimas pirmojo prisijungimo metu | |
on=On | |
off=Off | |
@@ -500,8 +506,8 @@ | |
identity-provider.force-authentication.tooltip=Jei \u012Fgalinta, tuomet tapatyb\u0117s teik\u0117jas privalo autentifikuoti naudotoj\u0105 i\u0161 naujo nepasitikint ankstesniu prisijungimu. | |
validate-signature=Para\u0161o tikrinimas | |
saml.validate-signature.tooltip=\u012Ejungti/i\u0161jungti SAML atsakym\u0173 para\u0161o tikrinim\u0105. | |
-validating-x509-certificate=X509 sertifikatas tikrinimui | |
-validating-x509-certificate.tooltip=PEM formato sertifikatas, kuris turi b\u016Bti naudojamas para\u0161\u0173 tikrinimui. | |
+validating-x509-certificate=X509 sertifikatai tikrinimui | |
+validating-x509-certificate.tooltip=PEM formato sertifikatai, kurie turi b\u016Bti naudojami para\u0161\u0173 tikrinimui. Reik\u0161m\u0117s skiriamos kableliais (,). | |
saml.import-from-url.tooltip=Importuoti metaduomenis i\u0161 nutolusio IDP SAML subjekto apra\u0161o. | |
social.client-id.tooltip=Kliento identifikatorius u\u017Eregistruotas tapatyb\u0117s teik\u0117jo sistemoje. | |
social.client-secret.tooltip=Kliento saugos kodas u\u017Eregistruotas tapatyb\u0117s teik\u0117jo sistemoje. | |
@@ -532,6 +538,7 @@ | |
created=Sukurta | |
back=Atgal | |
initial-access-tokens=Pradiniai prieigos raktai | |
+initial-access-tokens.tooltip=Pradiniai prieigos raktai naudojami klient\u0173 registracijoms dinaminiu b\u016Bdu. U\u017Eklausos su \u0161iais raktais gali b\u016Bti siun\u010Diami i\u0161 bet kurio serverio. | |
add-initial-access-tokens=Prid\u0117ti pradin\u012F prieigos rakt\u0105 | |
initial-access-token=Pradinis prieigos raktas | |
initial-access.copyPaste.tooltip=Nukopijuokite ir \u012Fklijuokite prieigos rakt\u0105 prie\u0161 i\u0161eidami i\u0161 \u0161io puslapio. V\u0117liau negal\u0117site kopijuoti \u0161i\u0173 prieigos rakt\u0173. | |
@@ -540,15 +547,29 @@ | |
initial-access-token.confirm.text=Pra\u0161ome \u012Fsitikinti, kad nusikopijavote pradinius prieigos raktus nes v\u0117liau prie rakt\u0173 nebegal\u0117site prieiti | |
no-initial-access-available=N\u0117ra galim\u0173 pradini\u0173 prieigos rak\u0161\u0173 | |
-trusted-hosts-legend=Patikimi kliento registracijos serveriai | |
-trusted-hosts-legend.tooltip=Serveri\u0173 vardai, kuriais pasitikima kliento registracijos metu. Klient\u0173 registravimo u\u017Eklausos i\u0161 \u0161i\u0173 serveri\u0173 gali b\u016Bti siun\u010Diamos be pradini\u0173 prieigos rakt\u0173. Klient\u0173 registracijos skai\u010Dius ribojamas pagal nurodyt\u0105 kiekvieno serverio limit\u0105. | |
-no-client-trusted-hosts-available=N\u0117ra galim\u0173 patikim\u0173 serveri\u0173 | |
-add-client-reg-trusted-host=Prid\u0117ti patikim\u0105 server\u012F | |
-hostname=Serverio vardas | |
-client-reg-hostname.tooltip=Pilnas serverio vardas arba IP adresas. Klient\u0173 registracijomis su \u0161iuo serverio vardu arba IP adresu bus pasitikima ir leid\u017Eiama nauj\u0173 klient\u0173 registracija. | |
-client-reg-count.tooltip=Limitas, kiek registravimo u\u017Eklaus\u0173 galima atsi\u0173sti i\u0161 kiekvieno serverio. Limitas bus atkurtas tik po atk\u016Brimo. | |
-client-reg-remainingCount.tooltip=I\u0161 \u0161io serverio lik\u0119s galim\u0173 registracijos u\u017Eklaus\u0173 skai\u010Dius. Limitas bus atkurtas tik po atk\u016Brimo. | |
-reset-remaining-count=Atk\u016Brimo limit\u0105 | |
+client-reg-policies=Klient\u0173 registravimo taisykl\u0117s | |
+client-reg-policy.name.tooltip=Taisykl\u0117s rodomas pavadinimas | |
+anonymous-policies=Anonimin\u0117s prieigos taisykl\u0117s | |
+anonymous-policies.tooltip=\u0160ios taisykl\u0117s naudojamos tuomet, kai klient\u0173 registravimo paslauga i\u0161kvie\u010Diama neautentifikuota u\u017Eklausa. T.y. u\u017Eklausa neturi nei pradini\u0173 prieigos rakt\u0173 (Initial Access Token) nei prieigos rakt\u0173 (Bearer Token). | |
+auth-policies=Autentifikuotos prieigos taisykl\u0117s | |
+auth-policies.tooltip=\u0160ios taisykl\u0117s naudojamos tuomet, kai klient\u0173 registravimo paslauga i\u0161kvie\u010Diama autentifikuota u\u017Eklausa. T.y. u\u017Eklausa turi pradini\u0173 prieigos rakt\u0173 (Initial Access Token) arba prieigos rakt\u0173 (Bearer Token). | |
+policy-name=Taisykl\u0117s pavadinimas | |
+no-client-reg-policies-configured=N\u0117ra klient\u0173 registravimo taisykli\u0173 | |
+trusted-hosts.label=Patikimi serveriai | |
+trusted-hosts.tooltip=Serveri\u0173 s\u0105ra\u0161as, kuriems suteikiama teis\u0117 kviesti klient\u0173 registravimo paslaug\u0105 (Client Registration Service) ir/arba naudototi \u0161ias reik\u0161mes klient\u0173 URI parametre (Client URI). Galima naudoti serveri\u0173 vardus arba IP adresus. Jei kaip pirmas simbolis naudojamas i\u0161ple\u010Diantis simbolis (pvz '*.example.com') tuomet visas domenas 'example.com' bus patikimas. | |
+host-sending-registration-request-must-match.label=Klient\u0173 registracijos paslaugos naudotojo serverio vardas turi sutapti | |
+host-sending-registration-request-must-match.tooltip=Jei \u0161galinta, tuomet visos klient\u0173 registravimo u\u017Eklausos leid\u017Eiamos tik tuo atveju, jei jos buvo i\u0161si\u0173stos i\u0161 to pa\u010Dio patikimo serverio ar domeno. | |
+client-uris-must-match.label=Klient\u0173 URI turi sutapti | |
+client-uris-must-match.tooltip=Jei \u012Fgalinta, tuomet visos klient\u0173 nuorodos (nukreipimo nuorodos ir kitos) leid\u017Eiamos tik tuo atveju, jei jos sutampa su patikimu serverio vardu arba domenu. | |
+allowed-protocol-mappers.label=Leid\u017Eiami protokolo atitikmen\u0173 parink\u0117jai | |
+allowed-protocol-mappers.tooltip=Nurodykite visus leid\u017Eiamus protokolo atitikmen\u0173 parink\u0117jus. Jei bandoma registruoti klient\u0105, kuris turi protokolo atitikmen\u0173 parink\u0117j\u0105 ne\u0161traukt\u0105 \u0161 leid\u017Eiam\u0173 s\u0105ra\u0161\u0105, tuomet visa registracijos u\u017Eklausa bus atmesta. | |
+consent-required-for-all-mappers.label=Privalomas vis\u0173 atitikmen\u0173 parink\u0117j\u0173 pritarimas | |
+consent-required-for-all-mappers.label=Consent Required For Mappers | |
+consent-required-for-all-mappers.tooltip=Jei \u012Fgalinta, tuomet visi naujai u\u017Eregistruotiems protokolo parink\u0117jams automati\u0161kai \u012Fgalinama consentRequired opcija. Tai rei\u0161kia, kad naudotojas privalo pateikti patvirtinim\u0105. PASTABA: Patvirtinimo ekranas rodomas tik tiems klientams, kuriems \u012Fjungtas consentRequired nustatymas. Da\u017Eniausiai geriausia nustatyti \u0161i\u0105 nuostat\u0105 kartu su consent-required taisykle. | |
+allowed-client-templates.label=Leid\u017Eiami klient\u0173 \u0161ablonai | |
+allowed-client-templates.tooltip=Leid\u017Eiam\u0173 kliento \u0161ablon\u0173 s\u0105ra\u0161as, kuriuos galima naudoti naujai registruojamiems klientams. Bandant registruoti klient\u0105 naudojant kliento \u0161ablon\u0105, kurio n\u0117ra s\u0105ra\u0161e bus atmestas. Pradin\u0117 reik\u0161m\u0117 - tu\u0161\u010Dias s\u0105ra\u0161as, t.y. neleid\u017Eiamas nei vienas kliento \u0161ablonas. | |
+max-clients.label=Mksimalus srities klient\u0173 skai\u010Dius | |
+max-clients.tooltip=Nauj\u0173 klient\u0173 registracija draud\u017Eiama, jei u\u017Eregistruot\u0173 klient\u0173 skai\u010Dius yra toks pats arba didesnis nei nustatytas limitas. | |
client-templates=Klient\u0173 \u0161ablonai | |
client-templates.tooltip=Klient\u0173 \u0161ablonai leid\u017Eia nurodyti bendr\u0105 vis\u0173 klient\u0173 konfig\u016Bracij\u0105 | |
@@ -880,6 +901,8 @@ | |
granted-roles=Suteiktos rol\u0117s | |
granted-protocol-mappers=Suteiktos protokolo atitikmen\u0173 s\u0105sajos | |
additional-grants=Papildomai suteikta | |
+consent-created-date=Sukurta | |
+consent-last-updated-date=Pask. kart\u0105 atnaujinta | |
revoke=At\u0161aukti | |
new-password=Naujas slapta\u017Eodis | |
password-confirmation=Pakartotas slapta\u017Eodis | |
@@ -1144,3 +1167,52 @@ | |
authz-evaluation-authorization-data=Atsakymas | |
authz-evaluation-authorization-data.tooltip=Autorizavimo u\u017Eklausos apdorojimo rezultatas su autorizacijos duomenimis. Rezultatas parodo k\u0105 Keycloak gr\u0105\u017Eina klientui pra\u0161an\u010Diam leidimo. Per\u017Ei\u016Br\u0117kite 'authorization' teigin\u012F su leidimais, kurie buvo suteikti \u0161iai autorizacijos u\u017Eklausai. | |
authz-show-authorization-data=Rodyti autorizacijos duomenis | |
+ | |
+kid=KID | |
+keys=Raktai | |
+all=Visi | |
+status=B\u016Bsena | |
+keystore=Rakt\u0173 saugykla | |
+keystores=Rakt\u0173 saugyklos | |
+add-keystore=Prid\u0117ti rakt\u0173 saugykl\u0105 | |
+add-keystore.placeholder=Prid\u0117ti rakt\u0173 saugykl\u0105... | |
+view=\u017Di\u016Br\u0117ti | |
+active=Aktyvus | |
+ | |
+Sunday=Sekmadienis | |
+Monday=Pirmadienis | |
+Tuesday=Antradienis | |
+Wednesday=Tre\u010Diadienis | |
+Thursday=Ketvirtadienis | |
+Friday=Penktadienis | |
+Saturday=\u0160e\u0161tadienis | |
+ | |
+user-storage-cache-policy=Pod\u0117lio nustatymai | |
+userStorage.cachePolicy=Pod\u0117lio taisykl\u0117s | |
+userStorage.cachePolicy.option.DEFAULT=DEFAULT | |
+userStorage.cachePolicy.option.EVICT_WEEKLY=EVICT_WEEKLY | |
+userStorage.cachePolicy.option.EVICT_DAILY=EVICT_DAILY | |
+userStorage.cachePolicy.option.MAX_LIFESPAN=MAX_LIFESPAN | |
+userStorage.cachePolicy.option.NO_CACHE=NO_CACHE | |
+userStorage.cachePolicy.tooltip=Saugyklos teik\u0117jo pod\u0117lio nustatymai. 'DEFAULT' naudojami numatytieji globalaus naudotojo pod\u0117lio nustatymai. 'EVICT_DAILY' naudotoj\u0173 pod\u0117lis i\u0161valomas kiekvien\u0105 dien\u0105 numatytuoju laiku. 'EVICT_WEEKLY' naudotoj\u0173 pod\u0117lis i\u0161valomas kart\u0105 \u012F savait\u0119 numatyt\u0105 dien\u0105. 'MAX-LIFESPAN' maksimalus pod\u0117lio \u012Fra\u0161o galiojimo laikas milisekund\u0117mis. | |
+userStorage.cachePolicy.evictionDay=I\u0161valymo diena | |
+userStorage.cachePolicy.evictionDay.tooltip=Savait\u0117s diena, kuomet pod\u0117lio \u012Fra\u0161ai taps nebeaktual\u016Bs | |
+userStorage.cachePolicy.evictionHour=I\u0161valymo valanda | |
+userStorage.cachePolicy.evictionHour.tooltip=Valanda, kuomet pod\u0117lio \u012Fra\u0161ai taps nebeaktual\u016Bs. | |
+userStorage.cachePolicy.evictionMinute=I\u0161valymo minut\u0117 | |
+userStorage.cachePolicy.evictionMinute.tooltip=Minut\u0117, kuomet pod\u0117lio \u012Fra\u0161ai taps nebeaktual\u016Bs. | |
+userStorage.cachePolicy.maxLifespan=Maksimalus galiojimo laikas | |
+userStorage.cachePolicy.maxLifespan.tooltip=Maksimalus galiojimo laikas milisekund\u0117mis po kurio pod\u0117lio \u012Fra\u0161ai taps nebeaktual\u016Bs. | |
+user-origin-link=Saugojimo kilm\u0117 | |
+ | |
+disable=I\u0161jungti | |
+disableable-credential-types=I\u0161jungiami tipai | |
+credentials.disableable.tooltip=Galim\u0173 i\u0161jungti prisijungimo duomen\u0173 tip\u0173 s\u0105ra\u0161as | |
+disable-credential-types=I\u0161jungti prisijungimo duomen\u0173 tipus | |
+credentials.disable.tooltip=Paspauskite mygtuk\u0105 nor\u0117dami i\u0161jungti pa\u017Eym\u0117tus prisijungimo duomen\u0173 tipus | |
+credential-types=Prisijungimo duomen\u0173 tipai | |
+manage-user-password=Tvarkyti slapta\u017Eod\u017Eius | |
+disable-credentials=I\u0161jungti prisijungimo duomenis | |
+credential-reset-actions=Prisijungimo duomen\u0173 atk\u016Brimas | |
+ldap-mappers=LDAP atitikmen\u0173 parink\u0117jai | |
+create-ldap-mapper=Sukurti LDAP atitikmen\u0173 parink\u0117j\u0105 | |
\ No newline at end of file | |
diff -ru /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/themes/base/admin/resources/js/app.js /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/base/admin/resources/js/app.js | |
--- /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/themes/base/admin/resources/js/app.js 2016-10-26 04:17:48.000000000 -0400 | |
+++ /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/base/admin/resources/js/app.js 2016-11-23 15:37:56.000000000 -0500 | |
@@ -1469,6 +1469,26 @@ | |
}, | |
controller : 'RealmSessionStatsCtrl' | |
}) | |
+ .when('/create/user-storage/:realm/providers/ldap', { | |
+ templateUrl : resourceUrl + '/partials/user-storage-ldap.html', | |
+ resolve : { | |
+ realm : function(RealmLoader) { | |
+ return RealmLoader(); | |
+ }, | |
+ instance : function() { | |
+ return { | |
+ | |
+ }; | |
+ }, | |
+ providerId : function($route) { | |
+ return $route.current.params.provider; | |
+ }, | |
+ serverInfo : function(ServerInfoLoader) { | |
+ return ServerInfoLoader(); | |
+ } | |
+ }, | |
+ controller : 'LDAPUserStorageCtrl' | |
+ }) | |
.when('/create/user-storage/:realm/providers/:provider', { | |
templateUrl : resourceUrl + '/partials/user-storage-generic.html', | |
resolve : { | |
@@ -1489,6 +1509,24 @@ | |
}, | |
controller : 'GenericUserStorageCtrl' | |
}) | |
+ .when('/realms/:realm/user-storage/providers/ldap/:componentId', { | |
+ templateUrl : resourceUrl + '/partials/user-storage-ldap.html', | |
+ resolve : { | |
+ realm : function(RealmLoader) { | |
+ return RealmLoader(); | |
+ }, | |
+ instance : function(ComponentLoader) { | |
+ return ComponentLoader(); | |
+ }, | |
+ providerId : function($route) { | |
+ return $route.current.params.provider; | |
+ }, | |
+ serverInfo : function(ServerInfoLoader) { | |
+ return ServerInfoLoader(); | |
+ } | |
+ }, | |
+ controller : 'LDAPUserStorageCtrl' | |
+ }) | |
.when('/realms/:realm/user-storage/providers/:provider/:componentId', { | |
templateUrl : resourceUrl + '/partials/user-storage-generic.html', | |
resolve : { | |
@@ -1507,6 +1545,60 @@ | |
}, | |
controller : 'GenericUserStorageCtrl' | |
}) | |
+ .when('/realms/:realm/ldap-mappers/:componentId', { | |
+ templateUrl : function(params){ return resourceUrl + '/partials/user-storage-ldap-mappers.html'; }, | |
+ resolve : { | |
+ realm : function(RealmLoader) { | |
+ return RealmLoader(); | |
+ }, | |
+ provider : function(ComponentLoader) { | |
+ return ComponentLoader(); | |
+ }, | |
+ mappers : function(ComponentsLoader, $route) { | |
+ return ComponentsLoader.loadComponents($route.current.params.componentId, 'org.keycloak.storage.ldap.mappers.LDAPStorageMapper'); | |
+ } | |
+ }, | |
+ controller : 'LDAPMapperListCtrl' | |
+ }) | |
+ .when('/create/ldap-mappers/:realm/:componentId', { | |
+ templateUrl : function(params){ return resourceUrl + '/partials/user-storage-ldap-mapper-detail.html'; }, | |
+ resolve : { | |
+ realm : function(RealmLoader) { | |
+ return RealmLoader(); | |
+ }, | |
+ provider : function(ComponentLoader) { | |
+ return ComponentLoader(); | |
+ }, | |
+ mapperTypes : function(SubComponentTypesLoader, $route) { | |
+ return SubComponentTypesLoader.loadComponents($route.current.params.componentId, 'org.keycloak.storage.ldap.mappers.LDAPStorageMapper'); | |
+ }, | |
+ clients : function(ClientListLoader) { | |
+ return ClientListLoader(); | |
+ } | |
+ }, | |
+ controller : 'LDAPMapperCreateCtrl' | |
+ }) | |
+ .when('/realms/:realm/ldap-mappers/:componentId/mappers/:mapperId', { | |
+ templateUrl : function(params){ return resourceUrl + '/partials/user-storage-ldap-mapper-detail.html'; }, | |
+ resolve : { | |
+ realm : function(RealmLoader) { | |
+ return RealmLoader(); | |
+ }, | |
+ provider : function(ComponentLoader) { | |
+ return ComponentLoader(); | |
+ }, | |
+ mapperTypes : function(SubComponentTypesLoader, $route) { | |
+ return SubComponentTypesLoader.loadComponents($route.current.params.componentId, 'org.keycloak.storage.ldap.mappers.LDAPStorageMapper'); | |
+ }, | |
+ mapper : function(LDAPMapperLoader) { | |
+ return LDAPMapperLoader(); | |
+ }, | |
+ clients : function(ClientListLoader) { | |
+ return ClientListLoader(); | |
+ } | |
+ }, | |
+ controller : 'LDAPMapperCtrl' | |
+ }) | |
.when('/realms/:realm/user-federation', { | |
templateUrl : resourceUrl + '/partials/user-federation.html', | |
resolve : { | |
@@ -2194,6 +2286,8 @@ | |
elem.addClass("btn btn-primary"); | |
elem.attr("type","submit"); | |
elem.bind('click', function() { | |
+ if ($scope.hasOwnProperty("changed") && !$scope.changed) return; | |
+ | |
$scope.$apply(function() { | |
var form = elem.closest('form'); | |
if (form && form.attr('name')) { | |
@@ -2420,6 +2514,15 @@ | |
} | |
}); | |
+module.directive('kcTabsLdap', function () { | |
+ return { | |
+ scope: true, | |
+ restrict: 'E', | |
+ replace: true, | |
+ templateUrl: resourceUrl + '/templates/kc-tabs-ldap.html' | |
+ } | |
+}); | |
+ | |
module.controller('RoleSelectorModalCtrl', function($scope, realm, config, configName, RealmRoles, Client, ClientRole, $modalInstance) { | |
$scope.selectedRealmRole = { | |
role: undefined | |
@@ -2468,7 +2571,7 @@ | |
}) | |
}); | |
-module.controller('ProviderConfigCtrl', function ($modal, $scope) { | |
+module.controller('ProviderConfigCtrl', function ($modal, $scope, ComponentUtils) { | |
$scope.fileNames = {}; | |
@@ -2490,18 +2593,17 @@ | |
}) | |
} | |
- $scope.newValues = []; | |
+ ComponentUtils.addLastEmptyValueToMultivaluedLists($scope.properties, $scope.config); | |
$scope.addValueToMultivalued = function(optionName) { | |
- var valueToPush = $scope.newValues[optionName]; | |
- | |
- console.log("New value to multivalued: optionName=" + optionName + ", valueToPush=" + valueToPush); | |
+ var configProperty = $scope.config[optionName]; | |
+ var lastIndex = configProperty.length - 1; | |
+ var lastValue = configProperty[lastIndex]; | |
+ console.log("Option=" + optionName + ", lastIndex=" + lastIndex + ", lastValue=" + lastValue); | |
- if (!$scope.config[optionName]) { | |
- $scope.config[optionName] = []; | |
+ if (lastValue.length > 0) { | |
+ configProperty.push(''); | |
} | |
- $scope.config[optionName].push(valueToPush); | |
- $scope.newValues[optionName] = ""; | |
} | |
$scope.deleteValueFromMultivalued = function(optionName, index) { | |
diff -ru /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/themes/base/admin/resources/js/controllers/clients.js /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/base/admin/resources/js/controllers/clients.js | |
--- /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/themes/base/admin/resources/js/controllers/clients.js 2016-10-26 04:17:48.000000000 -0400 | |
+++ /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/base/admin/resources/js/controllers/clients.js 2016-11-23 15:37:56.000000000 -0500 | |
@@ -860,6 +860,7 @@ | |
$scope.samlAuthnStatement = false; | |
$scope.samlMultiValuedRoles = false; | |
$scope.samlServerSignature = false; | |
+ $scope.samlServerSignatureEnableKeyInfoExtension = false; | |
$scope.samlAssertionSignature = false; | |
$scope.samlClientSignature = false; | |
$scope.samlEncrypt = false; | |
@@ -908,6 +909,13 @@ | |
} | |
} | |
+ if ($scope.client.attributes["saml.server.signature.keyinfo.ext"]) { | |
+ if ($scope.client.attributes["saml.server.signature.keyinfo.ext"] == "true") { | |
+ $scope.samlServerSignatureEnableKeyInfoExtension = true; | |
+ } else { | |
+ $scope.samlServerSignatureEnableKeyInfoExtension = false; | |
+ } | |
+ } | |
if ($scope.client.attributes["saml.assertion.signature"]) { | |
if ($scope.client.attributes["saml.assertion.signature"] == "true") { | |
$scope.samlAssertionSignature = true; | |
@@ -1115,7 +1123,11 @@ | |
$scope.client.attributes["saml.server.signature"] = "true"; | |
} else { | |
$scope.client.attributes["saml.server.signature"] = "false"; | |
- | |
+ } | |
+ if ($scope.samlServerSignatureEnableKeyInfoExtension == true) { | |
+ $scope.client.attributes["saml.server.signature.keyinfo.ext"] = "true"; | |
+ } else { | |
+ $scope.client.attributes["saml.server.signature.keyinfo.ext"] = "false"; | |
} | |
if ($scope.samlAssertionSignature == true) { | |
$scope.client.attributes["saml.assertion.signature"] = "true"; | |
@@ -1340,7 +1352,11 @@ | |
} | |
- | |
+ $scope.hideRoleSelector = function() { | |
+ return ($scope.client.useTemplateScope && $scope.template && template.fullScopeAllowed) | |
+ || (!$scope.template && $scope.client.fullScopeAllowed); | |
+ } | |
+ | |
$scope.changeFlag = function() { | |
Client.update({ | |
realm : realm.realm, | |
@@ -1550,7 +1566,8 @@ | |
}; | |
}); | |
-module.controller('ClientClusteringNodeCtrl', function($scope, client, Client, ClientClusterNode, realm, $location, $routeParams, Notifications) { | |
+module.controller('ClientClusteringNodeCtrl', function($scope, client, Client, ClientClusterNode, realm, | |
+ $location, $routeParams, Notifications, Dialog) { | |
$scope.client = client; | |
$scope.realm = realm; | |
$scope.create = !$routeParams.node; | |
@@ -1563,9 +1580,11 @@ | |
} | |
$scope.unregisterNode = function() { | |
- ClientClusterNode.remove({ realm : realm.realm, client : client.id , node: $scope.node.host }, function() { | |
- Notifications.success('Node ' + $scope.node.host + ' unregistered successfully.'); | |
- $location.url('/realms/' + realm.realm + '/clients/' + client.id + '/clustering'); | |
+ Dialog.confirmDelete($scope.node.host, 'node', function() { | |
+ ClientClusterNode.remove({ realm : realm.realm, client : client.id , node: $scope.node.host }, function() { | |
+ Notifications.success('Node ' + $scope.node.host + ' unregistered successfully.'); | |
+ $location.url('/realms/' + realm.realm + '/clients/' + client.id + '/clustering'); | |
+ }); | |
}); | |
} | |
diff -ru /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/themes/base/admin/resources/js/controllers/realm.js /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/base/admin/resources/js/controllers/realm.js | |
--- /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/themes/base/admin/resources/js/controllers/realm.js 2016-10-26 04:17:48.000000000 -0400 | |
+++ /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/base/admin/resources/js/controllers/realm.js 2016-11-23 15:37:56.000000000 -0500 | |
@@ -956,7 +956,7 @@ | |
id: $scope.identityProvider.internalId | |
}, $scope.identityProvider, function () { | |
$route.reload(); | |
- Notifications.success("The " + $scope.identityProvider.alias + " provider has been update."); | |
+ Notifications.success("The " + $scope.identityProvider.alias + " provider has been updated."); | |
}); | |
} | |
}; | |
@@ -1112,12 +1112,10 @@ | |
parent: realm.id, | |
type: 'org.keycloak.keys.KeyProvider' | |
}, function(data) { | |
- console.debug(data); | |
$scope.instances = data; | |
}); | |
$scope.addProvider = function(provider) { | |
- console.log('Add provider: ' + provider.id); | |
$location.url("/create/keys/" + realm.realm + "/providers/" + provider.id); | |
}; | |
@@ -1159,19 +1157,27 @@ | |
'priority': ["0"] | |
} | |
} | |
+ } else { | |
+ $scope.instance = angular.copy(instance); | |
+ } | |
- if (providerFactory.properties) { | |
- for (var i = 0; i < providerFactory.properties.length; i++) { | |
- var configProperty = providerFactory.properties[i]; | |
+ if (providerFactory.properties) { | |
+ for (var i = 0; i < providerFactory.properties.length; i++) { | |
+ var configProperty = providerFactory.properties[i]; | |
+ if (!$scope.instance.config[configProperty.name]) { | |
if (configProperty.defaultValue) { | |
$scope.instance.config[configProperty.name] = [configProperty.defaultValue]; | |
+ if (!$scope.create) { | |
+ instance.config[configProperty.name] = [configProperty.defaultValue]; | |
+ } | |
} else { | |
$scope.instance.config[configProperty.name] = ['']; | |
+ if (!$scope.create) { | |
+ instance.config[configProperty.name] = [configProperty.defaultValue]; | |
+ } | |
} | |
} | |
} | |
- } else { | |
- $scope.instance = angular.copy(instance); | |
} | |
$scope.$watch('instance', function() { | |
@@ -2385,7 +2391,7 @@ | |
}); | |
-module.controller('ClientRegPolicyDetailCtrl', function($scope, realm, clientRegistrationPolicyProviders, instance, Dialog, Notifications, Components, $route, $location) { | |
+module.controller('ClientRegPolicyDetailCtrl', function($scope, realm, clientRegistrationPolicyProviders, instance, Dialog, Notifications, Components, ComponentUtils, $route, $location) { | |
$scope.realm = realm; | |
$scope.instance = instance; | |
$scope.providerTypes = clientRegistrationPolicyProviders; | |
@@ -2402,7 +2408,11 @@ | |
function toDefaultValue(configProperty) { | |
if (configProperty.type === 'MultivaluedString' || configProperty.type === 'MultivaluedList') { | |
- return []; | |
+ if (configProperty.defaultValue) { | |
+ return configProperty.defaultValue; | |
+ } else { | |
+ return []; | |
+ } | |
} | |
if (configProperty.defaultValue) { | |
@@ -2426,6 +2436,10 @@ | |
} | |
} | |
+ if ($scope.providerType.properties) { | |
+ ComponentUtils.addLastEmptyValueToMultivaluedLists($scope.providerType.properties, $scope.instance.config); | |
+ } | |
+ | |
var oldCopy = angular.copy($scope.instance); | |
$scope.changed = false; | |
diff -ru /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/themes/base/admin/resources/js/controllers/users.js /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/base/admin/resources/js/controllers/users.js | |
--- /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/themes/base/admin/resources/js/controllers/users.js 2016-10-26 04:17:48.000000000 -0400 | |
+++ /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/base/admin/resources/js/controllers/users.js 2016-11-23 15:37:56.000000000 -0500 | |
@@ -335,8 +335,9 @@ | |
}); | |
module.controller('UserDetailCtrl', function($scope, realm, user, BruteForceUser, User, | |
+ Components, | |
UserFederationInstances, UserImpersonation, RequiredActions, | |
- $location, Dialog, Notifications) { | |
+ $location, $http, Dialog, Notifications) { | |
$scope.realm = realm; | |
$scope.create = !user.id; | |
$scope.editUsername = $scope.create || $scope.realm.editUsernameAllowed; | |
@@ -361,14 +362,39 @@ | |
}); | |
}; | |
if(user.federationLink) { | |
- console.log("federationLink is not null"); | |
- UserFederationInstances.get({realm : realm.realm, instance: user.federationLink}, function(link) { | |
- $scope.federationLinkName = link.displayName; | |
- $scope.federationLink = "#/realms/" + realm.realm + "/user-federation/providers/" + link.providerName + "/" + link.id; | |
- }) | |
+ console.log("federationLink is not null. It is " + user.federationLink); | |
+ | |
+ // TODO: This is temporary and should be removed once we remove userFederation SPI. It can be replaced with Components.get below | |
+ var fedUrl = authUrl + '/admin/realms/' + realm.realm + '/user-federation/instances-with-fallback/' + user.federationLink; | |
+ $http.get(fedUrl).success(function(data, status, headers, config) { | |
+ $scope.federationLinkName = data.federationLinkName; | |
+ $scope.federationLink = data.federationLink; | |
+ }); | |
+ | |
+ /* | |
+ if (user.federationLink.startsWith('f:')) { | |
+ Components.get({realm: realm.realm, componentId: user.federationLink}, function (link) { | |
+ $scope.federationLinkName = link.name; | |
+ $scope.federationLink = "#/realms/" + realm.realm + "/user-storage/providers/" + link.providerId + "/" + link.id; | |
+ }); | |
+ } else { | |
+ UserFederationInstances.get({realm: realm.realm, instance: user.federationLink}, function (link) { | |
+ $scope.federationLinkName = link.displayName; | |
+ $scope.federationLink = "#/realms/" + realm.realm + "/user-federation/providers/" + link.providerName + "/" + link.id; | |
+ }); | |
+ }*/ | |
+ | |
} else { | |
console.log("federationLink is null"); | |
} | |
+ if(user.origin) { | |
+ Components.get({realm: realm.realm, componentId: user.origin}, function (link) { | |
+ $scope.originName = link.name; | |
+ $scope.originLink = "#/realms/" + realm.realm + "/user-storage/providers/" + link.providerId + "/" + link.id; | |
+ }) | |
+ } else { | |
+ console.log("origin is null"); | |
+ } | |
console.log('realm brute force? ' + realm.bruteForceProtected) | |
$scope.temporarilyDisabled = false; | |
var isDisabled = function () { | |
@@ -484,7 +510,7 @@ | |
} | |
}); | |
-module.controller('UserCredentialsCtrl', function($scope, realm, user, RequiredActions, User, UserExecuteActionsEmail, UserCredentials, Notifications, Dialog) { | |
+module.controller('UserCredentialsCtrl', function($scope, realm, user, $route, RequiredActions, User, UserExecuteActionsEmail, UserCredentials, Notifications, Dialog) { | |
console.log('UserCredentialsCtrl'); | |
$scope.realm = realm; | |
@@ -509,6 +535,9 @@ | |
}); | |
$scope.resetPassword = function() { | |
+ // hit enter without entering both fields - ignore | |
+ if (!$scope.passwordAndConfirmPasswordEntered()) return; | |
+ | |
if ($scope.pwdChange) { | |
if ($scope.password != $scope.confirmPassword) { | |
Notifications.error("Password and confirmation does not match."); | |
@@ -537,18 +566,23 @@ | |
}); | |
}; | |
- $scope.removeTotp = function() { | |
- Dialog.confirm('Remove totp', 'Are you sure you want to remove the users totp configuration?', function() { | |
- UserCredentials.removeTotp({ realm: realm.realm, userId: user.id }, { }, function() { | |
- Notifications.success("The users totp configuration has been removed"); | |
- $scope.user.totp = false; | |
+ $scope.passwordAndConfirmPasswordEntered = function() { | |
+ return $scope.password && $scope.confirmPassword; | |
+ } | |
+ | |
+ $scope.disableCredentialTypes = function() { | |
+ Dialog.confirm('Disable credentials', 'Are you sure you want to disable these the users credentials?', function() { | |
+ UserCredentials.disableCredentialTypes({ realm: realm.realm, userId: user.id }, $scope.disableableCredentialTypes, function() { | |
+ $route.reload(); | |
+ Notifications.success("Credentials disabled"); | |
}, function() { | |
- Notifications.error("Failed to remove the users totp configuration"); | |
+ Notifications.error("Failed to disable credentials"); | |
}); | |
}); | |
}; | |
$scope.emailActions = []; | |
+ $scope.disableableCredentialTypes = []; | |
$scope.sendExecuteActionsEmail = function() { | |
if ($scope.changed) { | |
@@ -609,13 +643,22 @@ | |
for (var i = 0; i < $scope.providers.length; i++) { | |
$scope.providers[i].isUserFederationProvider = false; | |
} | |
+ | |
UserFederationProviders.query({realm: realm.realm}, function(data) { | |
for (var i = 0; i < data.length; i++) { | |
data[i].isUserFederationProvider = true; | |
+ | |
+ var existingProvider = $scope.providers.find(function(provider){ return provider.id == data[i].id }); | |
+ if (existingProvider) { | |
+ angular.copy(data[i], existingProvider); | |
+ continue; | |
+ } | |
+ | |
$scope.providers.push(data[i]); | |
} | |
}); | |
+ | |
$scope.addProvider = function(provider) { | |
console.log('Add provider: ' + provider.id); | |
if (provider.isUserFederationProvider) { | |
@@ -653,6 +696,9 @@ | |
if (instance.isUserFederationProvider) { | |
return instance.priority; | |
} else { | |
+ if (!instance.config['priority']) { | |
+ console.log('getInstancePriority is undefined'); | |
+ } | |
return instance.config['priority'][0]; | |
} | |
} | |
@@ -740,7 +786,13 @@ | |
if (providerFactory.metadata.synchronizable) { | |
instance.config['fullSyncPeriod'] = ['-1']; | |
instance.config['changedSyncPeriod'] = ['-1']; | |
+ | |
} | |
+ instance.config['cachePolicy'] = ['DEFAULT']; | |
+ instance.config['evictionDay'] = ['']; | |
+ instance.config['evictionHour'] = ['']; | |
+ instance.config['evictionMinute'] = ['']; | |
+ instance.config['maxLifespan'] = ['']; | |
if (providerFactory.properties) { | |
for (var i = 0; i < providerFactory.properties.length; i++) { | |
@@ -769,16 +821,30 @@ | |
} | |
} | |
- /* | |
- console.log('Manage instance'); | |
- console.log(instance.name); | |
- console.log(instance.providerId); | |
- console.log(instance.providerType); | |
- console.log(instance.parentId); | |
- for (var k in instance.config) { | |
- console.log('config[' + k + "] ="); | |
+ if (!instance.config['cachePolicy']) { | |
+ instance.config['cachePolicy'] = ['DEFAULT']; | |
+ | |
} | |
- */ | |
+ if (!instance.config['evictionDay']) { | |
+ instance.config['evictionDay'] = ['']; | |
+ | |
+ } | |
+ if (!instance.config['evictionHour']) { | |
+ instance.config['evictionHour'] = ['']; | |
+ | |
+ } | |
+ if (!instance.config['evictionMinute']) { | |
+ instance.config['evictionMinute'] = ['']; | |
+ | |
+ } | |
+ if (!instance.config['maxLifespan']) { | |
+ instance.config['maxLifespan'] = ['']; | |
+ | |
+ } | |
+ if (!instance.config['priority']) { | |
+ instance.config['priority'] = ['0']; | |
+ } | |
+ | |
} | |
if (providerFactory.metadata.synchronizable) { | |
if (instance.config && instance.config['importEnabled']) { | |
@@ -1512,4 +1578,499 @@ | |
}); | |
+module.controller('LDAPUserStorageCtrl', function($scope, $location, Notifications, $route, Dialog, realm, | |
+ serverInfo, instance, Components, UserStorageSync, RealmLDAPConnectionTester) { | |
+ console.log('LDAPUserStorageCtrl'); | |
+ var providerId = 'ldap'; | |
+ console.log('providerId: ' + providerId); | |
+ $scope.create = !instance.providerId; | |
+ console.log('create: ' + $scope.create); | |
+ var providers = serverInfo.componentTypes['org.keycloak.storage.UserStorageProvider']; | |
+ console.log('providers length ' + providers.length); | |
+ var providerFactory = null; | |
+ for (var i = 0; i < providers.length; i++) { | |
+ var p = providers[i]; | |
+ console.log('provider: ' + p.id); | |
+ if (p.id == providerId) { | |
+ $scope.providerFactory = p; | |
+ providerFactory = p; | |
+ break; | |
+ } | |
+ | |
+ } | |
+ | |
+ $scope.provider = instance; | |
+ $scope.showSync = false; | |
+ | |
+ $scope.ldapVendors = [ | |
+ { "id": "ad", "name": "Active Directory" }, | |
+ { "id": "rhds", "name": "Red Hat Directory Server" }, | |
+ { "id": "tivoli", "name": "Tivoli" }, | |
+ { "id": "edirectory", "name": "Novell eDirectory" }, | |
+ { "id": "other", "name": "Other" } | |
+ ]; | |
+ | |
+ $scope.authTypes = [ | |
+ { "id": "none", "name": "none" }, | |
+ { "id": "simple", "name": "simple" } | |
+ ]; | |
+ | |
+ $scope.searchScopes = [ | |
+ { "id": "1", "name": "One Level" }, | |
+ { "id": "2", "name": "Subtree" } | |
+ ]; | |
+ | |
+ $scope.useTruststoreOptions = [ | |
+ { "id": "always", "name": "Always" }, | |
+ { "id": "ldapsOnly", "name": "Only for ldaps" }, | |
+ { "id": "never", "name": "Never" } | |
+ ]; | |
+ | |
+ var DEFAULT_BATCH_SIZE = "1000"; | |
+ | |
+ | |
+ console.log("providerFactory: " + providerFactory.id); | |
+ | |
+ function initUserStorageSettings() { | |
+ if ($scope.create) { | |
+ instance.name = 'ldap'; | |
+ instance.providerId = 'ldap'; | |
+ instance.providerType = 'org.keycloak.storage.UserStorageProvider'; | |
+ instance.parentId = realm.id; | |
+ instance.config = { | |
+ | |
+ }; | |
+ instance.config['priority'] = ["0"]; | |
+ | |
+ $scope.fullSyncEnabled = false; | |
+ $scope.changedSyncEnabled = false; | |
+ instance.config['fullSyncPeriod'] = ['-1']; | |
+ instance.config['changedSyncPeriod'] = ['-1']; | |
+ instance.config['cachePolicy'] = ['DEFAULT']; | |
+ instance.config['evictionDay'] = ['']; | |
+ instance.config['evictionHour'] = ['']; | |
+ instance.config['evictionMinute'] = ['']; | |
+ instance.config['maxLifespan'] = ['']; | |
+ instance.config['batchSizeForSync'] = [DEFAULT_BATCH_SIZE]; | |
+ | |
+ if (providerFactory.properties) { | |
+ | |
+ for (var i = 0; i < providerFactory.properties.length; i++) { | |
+ var configProperty = providerFactory.properties[i]; | |
+ if (configProperty.defaultValue) { | |
+ instance.config[configProperty.name] = [configProperty.defaultValue]; | |
+ } else { | |
+ instance.config[configProperty.name] = ['']; | |
+ } | |
+ | |
+ } | |
+ } | |
+ | |
+ | |
+ } else { | |
+ $scope.fullSyncEnabled = (instance.config['fullSyncPeriod'] && instance.config['fullSyncPeriod'][0] > 0); | |
+ $scope.changedSyncEnabled = (instance.config['changedSyncPeriod'] && instance.config['changedSyncPeriod'][0]> 0); | |
+ if (!instance.config['fullSyncPeriod']) { | |
+ console.log('setting to -1'); | |
+ instance.config['fullSyncPeriod'] = ['-1']; | |
+ | |
+ } | |
+ if (!instance.config['changedSyncPeriod']) { | |
+ console.log('setting to -1'); | |
+ instance.config['changedSyncPeriod'] = ['-1']; | |
+ | |
+ } | |
+ if (!instance.config['cachePolicy']) { | |
+ instance.config['cachePolicy'] = ['DEFAULT']; | |
+ | |
+ } | |
+ if (!instance.config['evictionDay']) { | |
+ instance.config['evictionDay'] = ['']; | |
+ | |
+ } | |
+ if (!instance.config['evictionHour']) { | |
+ instance.config['evictionHour'] = ['']; | |
+ | |
+ } | |
+ if (!instance.config['evictionMinute']) { | |
+ instance.config['evictionMinute'] = ['']; | |
+ | |
+ } | |
+ if (!instance.config['maxLifespan']) { | |
+ instance.config['maxLifespan'] = ['']; | |
+ | |
+ } | |
+ if (!instance.config['priority']) { | |
+ instance.config['priority'] = ['0']; | |
+ } | |
+ | |
+ if (providerFactory.properties) { | |
+ | |
+ for (var i = 0; i < providerFactory.properties.length; i++) { | |
+ var configProperty = providerFactory.properties[i]; | |
+ if (!instance.config[configProperty.name]) { | |
+ if (configProperty.defaultValue) { | |
+ instance.config[configProperty.name] = [configProperty.defaultValue]; | |
+ } else { | |
+ instance.config[configProperty.name] = ['']; | |
+ } | |
+ } | |
+ | |
+ } | |
+ } | |
+ | |
+ for (var i=0 ; i<$scope.ldapVendors.length ; i++) { | |
+ if ($scope.ldapVendors[i].id === instance.config['vendor'][0]) { | |
+ $scope.vendorName = $scope.ldapVendors[i].name; | |
+ } | |
+ }; | |
+ | |
+ | |
+ | |
+ } | |
+ if (instance.config && instance.config['importEnabled']) { | |
+ $scope.showSync = instance.config['importEnabled'][0] == 'true'; | |
+ } else { | |
+ $scope.showSync = true; | |
+ } | |
+ | |
+ $scope.changed = false; | |
+ $scope.lastVendor = instance.config['vendor'][0]; | |
+ } | |
+ | |
+ initUserStorageSettings(); | |
+ $scope.instance = angular.copy(instance); | |
+ $scope.realm = realm; | |
+ | |
+ $scope.$watch('instance', function() { | |
+ if (!angular.equals($scope.instance, instance)) { | |
+ $scope.changed = true; | |
+ } | |
+ | |
+ if (!angular.equals($scope.instance.config['vendor'][0], $scope.lastVendor)) { | |
+ console.log("LDAP vendor changed. Previous=" + $scope.lastVendor + " New=" + $scope.instance.config['vendor'][0]); | |
+ $scope.lastVendor = $scope.instance.config['vendor'][0]; | |
+ | |
+ if ($scope.lastVendor === "ad") { | |
+ $scope.instance.config['usernameLDAPAttribute'][0] = "cn"; | |
+ $scope.instance.config['userObjectClasses'][0] = "person, organizationalPerson, user"; | |
+ } else { | |
+ $scope.instance.config['usernameLDAPAttribute'][0] = "uid"; | |
+ $scope.instance.config['userObjectClasses'][0] = "inetOrgPerson, organizationalPerson"; | |
+ } | |
+ | |
+ $scope.instance.config['rdnLDAPAttribute'][0] = $scope.instance.config['usernameLDAPAttribute'][0]; | |
+ | |
+ var vendorToUUID = { | |
+ rhds: "nsuniqueid", | |
+ tivoli: "uniqueidentifier", | |
+ edirectory: "guid", | |
+ ad: "objectGUID", | |
+ other: "entryUUID" | |
+ }; | |
+ $scope.instance.config['uuidLDAPAttribute'][0] = vendorToUUID[$scope.lastVendor]; | |
+ } | |
+ | |
+ | |
+ }, true); | |
+ | |
+ $scope.$watch('fullSyncEnabled', function(newVal, oldVal) { | |
+ if (oldVal == newVal) { | |
+ return; | |
+ } | |
+ | |
+ $scope.instance.config['fullSyncPeriod'][0] = $scope.fullSyncEnabled ? "604800" : "-1"; | |
+ $scope.changed = true; | |
+ }); | |
+ | |
+ $scope.$watch('changedSyncEnabled', function(newVal, oldVal) { | |
+ if (oldVal == newVal) { | |
+ return; | |
+ } | |
+ | |
+ $scope.instance.config['changedSyncPeriod'][0] = $scope.changedSyncEnabled ? "86400" : "-1"; | |
+ $scope.changed = true; | |
+ }); | |
+ | |
+ | |
+ $scope.save = function() { | |
+ $scope.changed = false; | |
+ if (!$scope.instance.config['batchSizeForSync'] || !parseInt($scope.instance.config['batchSizeForSync'][0])) { | |
+ $scope.instance.config['batchSizeForSync'] = [ DEFAULT_BATCH_SIZE ]; | |
+ } else { | |
+ $scope.instance.config['batchSizeForSync'][0] = parseInt($scope.instance.config.batchSizeForSync).toString(); | |
+ } | |
+ | |
+ if ($scope.create) { | |
+ Components.save({realm: realm.realm}, $scope.instance, function (data, headers) { | |
+ var l = headers().location; | |
+ var id = l.substring(l.lastIndexOf("/") + 1); | |
+ | |
+ $location.url("/realms/" + realm.realm + "/user-storage/providers/" + $scope.instance.providerId + "/" + id); | |
+ Notifications.success("The provider has been created."); | |
+ }, function (errorResponse) { | |
+ if (errorResponse.data && errorResponse.data['error_description']) { | |
+ Notifications.error(errorResponse.data['error_description']); | |
+ } | |
+ }); | |
+ } else { | |
+ Components.update({realm: realm.realm, | |
+ componentId: instance.id | |
+ }, | |
+ $scope.instance, function () { | |
+ $route.reload(); | |
+ Notifications.success("The provider has been updated."); | |
+ }, function (errorResponse) { | |
+ if (errorResponse.data && errorResponse.data['error_description']) { | |
+ Notifications.error(errorResponse.data['error_description']); | |
+ } | |
+ }); | |
+ } | |
+ }; | |
+ | |
+ $scope.reset = function() { | |
+ initUserStorageSettings(); | |
+ $scope.instance = angular.copy(instance); | |
+ }; | |
+ | |
+ $scope.cancel = function() { | |
+ if ($scope.create) { | |
+ $location.url("/realms/" + realm.realm + "/user-storage"); | |
+ } else { | |
+ $route.reload(); | |
+ } | |
+ }; | |
+ | |
+ $scope.triggerFullSync = function() { | |
+ console.log('GenericCtrl: triggerFullSync'); | |
+ triggerSync('triggerFullSync'); | |
+ } | |
+ | |
+ $scope.triggerChangedUsersSync = function() { | |
+ console.log('GenericCtrl: triggerChangedUsersSync'); | |
+ triggerSync('triggerChangedUsersSync'); | |
+ } | |
+ | |
+ function triggerSync(action) { | |
+ UserStorageSync.save({ action: action, realm: $scope.realm.realm, componentId: $scope.instance.id }, {}, function(syncResult) { | |
+ $route.reload(); | |
+ Notifications.success("Sync of users finished successfully. " + syncResult.status); | |
+ }, function() { | |
+ $route.reload(); | |
+ Notifications.error("Error during sync of users"); | |
+ }); | |
+ } | |
+ | |
+ var initConnectionTest = function(testAction, ldapConfig) { | |
+ return { | |
+ action: testAction, | |
+ realm: $scope.realm.realm, | |
+ connectionUrl: ldapConfig.connectionUrl, | |
+ bindDn: ldapConfig.bindDn, | |
+ bindCredential: ldapConfig.bindCredential, | |
+ useTruststoreSpi: ldapConfig.useTruststoreSpi | |
+ }; | |
+ }; | |
+ | |
+ $scope.testConnection = function() { | |
+ console.log('LDAPCtrl: testConnection'); | |
+ RealmLDAPConnectionTester.get(initConnectionTest("testConnection", $scope.instance.config), function() { | |
+ Notifications.success("LDAP connection successful."); | |
+ }, function() { | |
+ Notifications.error("Error when trying to connect to LDAP. See server.log for details."); | |
+ }); | |
+ } | |
+ | |
+ $scope.testAuthentication = function() { | |
+ console.log('LDAPCtrl: testAuthentication'); | |
+ RealmLDAPConnectionTester.get(initConnectionTest("testAuthentication", $scope.instance.config), function() { | |
+ Notifications.success("LDAP authentication successful."); | |
+ }, function() { | |
+ Notifications.error("LDAP authentication failed. See server.log for details"); | |
+ }); | |
+ } | |
+ | |
+ | |
+ | |
+}); | |
+ | |
+module.controller('LDAPTabCtrl', function(Dialog, $scope, Current, Notifications, $location) { | |
+ $scope.removeUserFederation = function() { | |
+ Dialog.confirmDelete($scope.instance.name, 'ldap provider', function() { | |
+ $scope.instance.$remove({ | |
+ realm : Current.realm.realm, | |
+ componentId : $scope.instance.id | |
+ }, function() { | |
+ $location.url("/realms/" + Current.realm.realm + "/user-federation"); | |
+ Notifications.success("The provider has been deleted."); | |
+ }); | |
+ }); | |
+ }; | |
+}); | |
+ | |
+ | |
+module.controller('LDAPMapperListCtrl', function($scope, $location, Notifications, $route, Dialog, realm, provider, mappers) { | |
+ console.log('LDAPMapperListCtrl'); | |
+ | |
+ $scope.realm = realm; | |
+ $scope.provider = provider; | |
+ $scope.instance = provider; | |
+ | |
+ $scope.mappers = mappers; | |
+ | |
+}); | |
+ | |
+module.controller('LDAPMapperCtrl', function($scope, $route, realm, provider, mapperTypes, mapper, clients, Components, LDAPMapperSync, Notifications, Dialog, $location) { | |
+ console.log('LDAPMapperCtrl'); | |
+ $scope.realm = realm; | |
+ $scope.provider = provider; | |
+ $scope.clients = clients; | |
+ $scope.create = false; | |
+ $scope.changed = false; | |
+ | |
+ for (var i = 0; i < mapperTypes.length; i++) { | |
+ console.log('mapper.providerId: ' + mapper.providerId); | |
+ console.log('mapperTypes[i].id ' + mapperTypes[i].id); | |
+ if (mapperTypes[i].id == mapper.providerId) { | |
+ $scope.mapperType = mapperTypes[i]; | |
+ break; | |
+ } | |
+ } | |
+ | |
+ if ($scope.mapperType.properties) { | |
+ | |
+ for (var i = 0; i < $scope.mapperType.properties.length; i++) { | |
+ var configProperty = $scope.mapperType.properties[i]; | |
+ if (!mapper.config[configProperty.name]) { | |
+ if (configProperty.defaultValue) { | |
+ mapper.config[configProperty.name] = [configProperty.defaultValue]; | |
+ } else { | |
+ mapper.config[configProperty.name] = ['']; | |
+ } | |
+ } | |
+ | |
+ } | |
+ } | |
+ $scope.mapper = angular.copy(mapper); | |
+ | |
+ | |
+ $scope.$watch('mapper', function() { | |
+ if (!angular.equals($scope.mapper, mapper)) { | |
+ $scope.changed = true; | |
+ } | |
+ }, true); | |
+ | |
+ $scope.save = function() { | |
+ Components.update({realm: realm.realm, | |
+ componentId: mapper.id | |
+ }, | |
+ $scope.mapper, function () { | |
+ $route.reload(); | |
+ Notifications.success("The mapper has been updated."); | |
+ }, function (errorResponse) { | |
+ if (errorResponse.data && errorResponse.data['error_description']) { | |
+ Notifications.error(errorResponse.data['error_description']); | |
+ } | |
+ }); | |
+ }; | |
+ | |
+ $scope.reset = function() { | |
+ $scope.mapper = angular.copy(mapper); | |
+ $scope.changed = false; | |
+ }; | |
+ | |
+ $scope.remove = function() { | |
+ Dialog.confirmDelete($scope.mapper.name, 'ldap mapper', function() { | |
+ Components.remove({ | |
+ realm : realm.realm, | |
+ componentId : mapper.id | |
+ }, function() { | |
+ $location.url("/realms/" + realm.realm + '/ldap-mappers/' + provider.id); | |
+ Notifications.success("The provider has been deleted."); | |
+ }); | |
+ }); | |
+ }; | |
+ | |
+ $scope.triggerFedToKeycloakSync = function() { | |
+ triggerMapperSync("fedToKeycloak") | |
+ } | |
+ | |
+ $scope.triggerKeycloakToFedSync = function() { | |
+ triggerMapperSync("keycloakToFed"); | |
+ } | |
+ | |
+ function triggerMapperSync(direction) { | |
+ LDAPMapperSync.save({ direction: direction, realm: realm.realm, parentId: provider.id, mapperId : $scope.mapper.id }, {}, function(syncResult) { | |
+ Notifications.success("Data synced successfully. " + syncResult.status); | |
+ }, function(error) { | |
+ Notifications.error(error.data.errorMessage); | |
+ }); | |
+ } | |
+ | |
+}); | |
+ | |
+module.controller('LDAPMapperCreateCtrl', function($scope, realm, provider, mapperTypes, clients, Components, Notifications, Dialog, $location) { | |
+ console.log('LDAPMapperCreateCtrl'); | |
+ $scope.realm = realm; | |
+ $scope.provider = provider; | |
+ $scope.clients = clients; | |
+ $scope.create = true; | |
+ $scope.mapper = { config: {}}; | |
+ $scope.mapperTypes = mapperTypes; | |
+ $scope.mapperType = null; | |
+ $scope.changed = true; | |
+ | |
+ $scope.$watch('mapperType', function() { | |
+ if ($scope.mapperType != null) { | |
+ $scope.mapper.config = {}; | |
+ if ($scope.mapperType.properties) { | |
+ | |
+ for (var i = 0; i < $scope.mapperType.properties.length; i++) { | |
+ var configProperty = $scope.mapperType.properties[i]; | |
+ if (!$scope.mapper.config[configProperty.name]) { | |
+ if (configProperty.defaultValue) { | |
+ $scope.mapper.config[configProperty.name] = [configProperty.defaultValue]; | |
+ } else { | |
+ $scope.mapper.config[configProperty.name] = ['']; | |
+ } | |
+ } | |
+ | |
+ } | |
+ } | |
+ } | |
+ }, true); | |
+ | |
+ $scope.save = function() { | |
+ if ($scope.mapperType == null) { | |
+ Notifications.error("You need to select mapper type!"); | |
+ return; | |
+ } | |
+ | |
+ $scope.mapper.providerId = $scope.mapperType.id; | |
+ $scope.mapper.providerType = 'org.keycloak.storage.ldap.mappers.LDAPStorageMapper'; | |
+ $scope.mapper.parentId = provider.id; | |
+ | |
+ Components.save({realm: realm.realm}, $scope.mapper, function (data, headers) { | |
+ var l = headers().location; | |
+ var id = l.substring(l.lastIndexOf("/") + 1); | |
+ | |
+ $location.url("/realms/" + realm.realm + "/ldap-mappers/" + $scope.mapper.parentId + "/mappers/" + id); | |
+ Notifications.success("The mapper has been created."); | |
+ }, function (errorResponse) { | |
+ if (errorResponse.data && errorResponse.data['error_description']) { | |
+ Notifications.error(errorResponse.data['error_description']); | |
+ } | |
+ }); | |
+ }; | |
+ | |
+ $scope.reset = function() { | |
+ $location.url("/realms/" + realm.realm + '/ldap-mappers/' + provider.id); | |
+ }; | |
+ | |
+ | |
+}); | |
+ | |
+ | |
+ | |
+ | |
diff -ru /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/themes/base/admin/resources/js/loaders.js /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/base/admin/resources/js/loaders.js | |
--- /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/themes/base/admin/resources/js/loaders.js 2016-10-26 04:17:48.000000000 -0400 | |
+++ /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/base/admin/resources/js/loaders.js 2016-11-23 15:37:56.000000000 -0500 | |
@@ -143,6 +143,15 @@ | |
}); | |
}); | |
+module.factory('LDAPMapperLoader', function(Loader, Components, $route, $q) { | |
+ return Loader.get(Components, function() { | |
+ return { | |
+ realm : $route.current.params.realm, | |
+ componentId: $route.current.params.mapperId | |
+ } | |
+ }); | |
+}); | |
+ | |
module.factory('ComponentsLoader', function(Loader, Components, $route, $q) { | |
var componentsLoader = {}; | |
@@ -159,6 +168,22 @@ | |
return componentsLoader; | |
}); | |
+module.factory('SubComponentTypesLoader', function(Loader, SubComponentTypes, $route, $q) { | |
+ var componentsLoader = {}; | |
+ | |
+ componentsLoader.loadComponents = function(parent, componentType) { | |
+ return Loader.query(SubComponentTypes, function() { | |
+ return { | |
+ realm : $route.current.params.realm, | |
+ componentId : parent, | |
+ type: componentType | |
+ } | |
+ })(); | |
+ }; | |
+ | |
+ return componentsLoader; | |
+}); | |
+ | |
module.factory('UserFederationInstanceLoader', function(Loader, UserFederationInstances, $route, $q) { | |
return Loader.get(UserFederationInstances, function() { | |
return { | |
diff -ru /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/themes/base/admin/resources/js/services.js /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/base/admin/resources/js/services.js | |
--- /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/themes/base/admin/resources/js/services.js 2016-10-26 04:17:48.000000000 -0400 | |
+++ /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/base/admin/resources/js/services.js 2016-11-23 15:37:56.000000000 -0500 | |
@@ -191,6 +191,48 @@ | |
return notifications; | |
}); | |
+ | |
+module.factory('ComponentUtils', function() { | |
+ | |
+ var utils = {}; | |
+ | |
+ utils.addLastEmptyValueToMultivaluedLists = function(properties, config) { | |
+ | |
+ for (var i=0 ; i<properties.length ; i++) { | |
+ var prop = properties[i]; | |
+ if (prop.type === 'MultivaluedString') { | |
+ var configProperty = config[prop.name]; | |
+ | |
+ if (configProperty == null) { | |
+ configProperty = []; | |
+ config[prop.name] = configProperty; | |
+ } | |
+ | |
+ if (configProperty.length == 0 || configProperty[configProperty.length - 1].length > 0) { | |
+ configProperty.push(''); | |
+ } | |
+ } | |
+ } | |
+ } | |
+ | |
+ | |
+ utils.removeLastEmptyValue = function(componentConfig) { | |
+ | |
+ for (var configPropertyName in componentConfig) { | |
+ var configVal = componentConfig[configPropertyName]; | |
+ if (configVal && configVal.length > 0) { | |
+ var lastVal = configVal[configVal.length - 1]; | |
+ if (lastVal === '') { | |
+ console.log('Remove empty value from config property: ' + configPropertyName); | |
+ configVal.splice(configVal.length - 1, 1); | |
+ } | |
+ } | |
+ } | |
+ } | |
+ | |
+ return utils; | |
+}); | |
+ | |
module.factory('Realm', function($resource) { | |
return $resource(authUrl + '/admin/realms/:id', { | |
id : '@realm' | |
@@ -489,6 +531,15 @@ | |
} | |
}).update; | |
+ credentials.disableCredentialTypes = $resource(authUrl + '/admin/realms/:realm/users/:userId/disable-credential-types', { | |
+ realm : '@realm', | |
+ userId : '@userId' | |
+ }, { | |
+ update : { | |
+ method : 'PUT' | |
+ } | |
+ }).update; | |
+ | |
return credentials; | |
}); | |
@@ -1648,13 +1699,39 @@ | |
}); | |
}); | |
-module.factory('Components', function($resource) { | |
+module.factory('SubComponentTypes', function($resource) { | |
+ return $resource(authUrl + '/admin/realms/:realm/components/:componentId/sub-component-types', { | |
+ realm: '@realm', | |
+ componentId: '@componentId' | |
+ }); | |
+}); | |
+ | |
+module.factory('Components', function($resource, ComponentUtils) { | |
return $resource(authUrl + '/admin/realms/:realm/components/:componentId', { | |
realm : '@realm', | |
componentId : '@componentId' | |
}, { | |
update : { | |
- method : 'PUT' | |
+ method : 'PUT', | |
+ transformRequest: function(componentInstance) { | |
+ | |
+ if (componentInstance.config) { | |
+ ComponentUtils.removeLastEmptyValue(componentInstance.config); | |
+ } | |
+ | |
+ return angular.toJson(componentInstance); | |
+ } | |
+ }, | |
+ save : { | |
+ method : 'POST', | |
+ transformRequest: function(componentInstance) { | |
+ | |
+ if (componentInstance.config) { | |
+ ComponentUtils.removeLastEmptyValue(componentInstance.config); | |
+ } | |
+ | |
+ return angular.toJson(componentInstance); | |
+ } | |
} | |
}); | |
}); | |
@@ -1672,4 +1749,14 @@ | |
}); | |
}); | |
+module.factory('LDAPMapperSync', function($resource) { | |
+ return $resource(authUrl + '/admin/realms/:realm/user-storage/:parentId/mappers/:mapperId/sync', { | |
+ realm : '@realm', | |
+ componentId : '@componentId', | |
+ mapperId: '@mapperId' | |
+ }); | |
+}); | |
+ | |
+ | |
+ | |
diff -ru /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/themes/base/admin/resources/partials/authz/policy/resource-server-policy-list.html /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/base/admin/resources/partials/authz/policy/resource-server-policy-list.html | |
--- /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/themes/base/admin/resources/partials/authz/policy/resource-server-policy-list.html 2016-10-26 04:17:48.000000000 -0400 | |
+++ /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/base/admin/resources/partials/authz/policy/resource-server-policy-list.html 2016-11-23 15:37:56.000000000 -0500 | |
@@ -23,14 +23,14 @@ | |
</div> | |
<div class="input-group"> | |
<select class="form-control search" data-ng-model="query.type" | |
- ng-options="p.type as p.name group by p.group for p in policyProviders track by p.type" data-ng-change="firstPage()"> | |
+ ng-options="p.type as p.name for p in policyProviders track by p.type" data-ng-change="firstPage()"> | |
<option value="" selected ng-click="query.type = ''">{{:: 'authz-all-types' | translate}}</option> | |
</select> | |
</div> | |
</div> | |
<div class="pull-right"> | |
<select class="form-control" ng-model="policyType" | |
- ng-options="p.name group by p.group for p in policyProviders track by p.type" | |
+ ng-options="p.name for p in policyProviders track by p.type" | |
data-ng-change="addPolicy(policyType);"> | |
<option value="" disabled selected>{{:: 'authz-create-policy' | translate}}...</option> | |
</select> | |
diff -ru /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/themes/base/admin/resources/partials/client-clustering-node.html /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/base/admin/resources/partials/client-clustering-node.html | |
--- /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/themes/base/admin/resources/partials/client-clustering-node.html 2016-10-26 04:17:48.000000000 -0400 | |
+++ /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/base/admin/resources/partials/client-clustering-node.html 2016-11-23 15:37:56.000000000 -0500 | |
@@ -20,10 +20,10 @@ | |
<input ng-disabled="!create" class="form-control" type="text" id="host" name="host" data-ng-model="node.host" required> | |
</div> | |
</div> | |
- <div class="form-group"> | |
+ <div ng-hide="create" class="form-group"> | |
<label class="col-md-2 control-label" for="lastRegistration">{{:: 'last-registration' | translate}}</label> | |
<div class="col-sm-6"> | |
- <input ng-disabled="true" class="form-control" type="text" id="lastRegistration" name="lastRegistration" data-ng-model="node.lastRegistration"> | |
+ {{node.lastRegistration}} | |
</div> | |
</div> | |
<div class="form-group"> | |
diff -ru /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/themes/base/admin/resources/partials/client-detail.html /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/base/admin/resources/partials/client-detail.html | |
--- /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/themes/base/admin/resources/partials/client-detail.html 2016-10-26 04:17:48.000000000 -0400 | |
+++ /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/base/admin/resources/partials/client-detail.html 2016-11-23 15:37:56.000000000 -0500 | |
@@ -89,7 +89,7 @@ | |
<input ng-model="client.standardFlowEnabled" name="standardFlowEnabled" id="standardFlowEnabled" onoffswitch on-text="{{:: 'onText' | translate}}" off-text="{{:: 'offText' | translate}}"/> | |
</div> | |
</div> | |
- <div class="form-group" data-ng-show="protocol == 'openid-connect' && client.publicClient && !client.bearerOnly"> | |
+ <div class="form-group" data-ng-show="protocol == 'openid-connect' && !client.bearerOnly"> | |
<label class="col-md-2 control-label" for="implicitFlowEnabled">{{:: 'implicit-flow-enabled' | translate}}</label> | |
<kc-tooltip>{{:: 'implicit-flow-enabled.tooltip' | translate}}</kc-tooltip> | |
<div class="col-md-6"> | |
@@ -118,7 +118,7 @@ | |
</div> | |
</div> | |
<div class="form-group clearfix block" data-ng-show="protocol == 'saml'"> | |
- <label class="col-md-2 control-label" for="samlServerSignature">{{:: 'include-authnstatement' | translate}}</label> | |
+ <label class="col-md-2 control-label" for="samlAuthnStatement">{{:: 'include-authnstatement' | translate}}</label> | |
<div class="col-sm-6"> | |
<input ng-model="samlAuthnStatement" ng-click="switchChange()" name="samlAuthnStatement" id="samlAuthnStatement" onoffswitch on-text="{{:: 'onText' | translate}}" off-text="{{:: 'offText' | translate}}"/> | |
</div> | |
@@ -131,6 +131,13 @@ | |
</div> | |
<kc-tooltip>{{:: 'sign-documents.tooltip' | translate}}</kc-tooltip> | |
</div> | |
+ <div class="form-group clearfix block" data-ng-show="protocol == 'saml' && samlServerSignature == true"> | |
+ <label class="col-md-2 control-label" for="samlServerSignatureEnableKeyInfoExtension">{{:: 'sign-documents-redirect-enable-key-info-ext' | translate}}</label> | |
+ <div class="col-sm-6"> | |
+ <input ng-model="samlServerSignatureEnableKeyInfoExtension" ng-click="switchChange()" name="samlServerSignatureEnableKeyInfoExtension" id="samlServerSignatureEnableKeyInfoExtension" onoffswitch on-text="{{:: 'onText' | translate}}" off-text="{{:: 'offText' | translate}}"/> | |
+ </div> | |
+ <kc-tooltip>{{:: 'sign-documents-redirect-enable-key-info-ext.tooltip' | translate}}</kc-tooltip> | |
+ </div> | |
<div class="form-group clearfix block" data-ng-show="protocol == 'saml'"> | |
<label class="col-md-2 control-label" for="samlAssertionSignature">{{:: 'sign-assertions' | translate}}</label> | |
<div class="col-sm-6"> | |
diff -ru /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/themes/base/admin/resources/partials/client-scope-mappings.html /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/base/admin/resources/partials/client-scope-mappings.html | |
--- /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/themes/base/admin/resources/partials/client-scope-mappings.html 2016-10-26 04:17:48.000000000 -0400 | |
+++ /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/base/admin/resources/partials/client-scope-mappings.html 2016-11-23 15:37:56.000000000 -0500 | |
@@ -41,7 +41,7 @@ | |
</fieldset> | |
</form> | |
- <form class="form-horizontal" name="realmForm" novalidate kc-read-only="!access.manageClients" data-ng-show="!client.fullScopeAllowed" data-ng-hide="client.useTemplateScope && template && template.fullScopeAllowed"> | |
+ <form class="form-horizontal" name="realmForm" novalidate kc-read-only="!access.manageClients" data-ng-hide="hideRoleSelector()"> | |
<div class="form-group"> | |
<label class="col-md-2 control-label" class="control-label">{{:: 'realm-roles' | translate}}</label> | |
<div class="col-md-10"> | |
@@ -132,6 +132,6 @@ | |
</div> | |
</div> | |
</form> | |
- </div> | |
+ </div> | |
<kc-menu></kc-menu> | |
\ No newline at end of file | |
diff -ru /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/themes/base/admin/resources/partials/federated-generic.html /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/base/admin/resources/partials/federated-generic.html | |
--- /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/themes/base/admin/resources/partials/federated-generic.html 2016-10-26 04:17:48.000000000 -0400 | |
+++ /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/base/admin/resources/partials/federated-generic.html 2016-11-23 15:37:56.000000000 -0500 | |
@@ -75,14 +75,14 @@ | |
</fieldset> | |
<div class="form-group"> | |
- <div class="col-md-10 col-md-offset-2" data-ng-show="create && access.manageUsers"> | |
+ <div class="col-md-10 col-md-offset-2" data-ng-show="create && access.manageRealm"> | |
<button kc-save>{{:: 'save' | translate}}</button> | |
<button kc-cancel data-ng-click="cancel()">{{:: 'cancel' | translate}}</button> | |
</div> | |
</div> | |
<div class="form-group"> | |
- <div class="col-md-10 col-md-offset-2" data-ng-show="!create && access.manageUsers"> | |
+ <div class="col-md-10 col-md-offset-2" data-ng-show="!create && access.manageRealm"> | |
<button kc-save data-ng-disabled="!changed">{{:: 'save' | translate}}</button> | |
<button kc-reset data-ng-disabled="!changed">{{:: 'cancel' | translate}}</button> | |
<button class="btn btn-primary" data-ng-click="triggerChangedUsersSync()" data-ng-hide="changed">{{:: 'synchronize-changed-users' | translate}}</button> | |
diff -ru /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/themes/base/admin/resources/partials/federated-kerberos.html /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/base/admin/resources/partials/federated-kerberos.html | |
--- /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/themes/base/admin/resources/partials/federated-kerberos.html 2016-10-26 04:17:48.000000000 -0400 | |
+++ /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/base/admin/resources/partials/federated-kerberos.html 2016-11-23 15:37:56.000000000 -0500 | |
@@ -91,14 +91,14 @@ | |
</fieldset> | |
<div class="form-group"> | |
- <div class="col-md-10 col-md-offset-2" data-ng-show="create && access.manageUsers"> | |
+ <div class="col-md-10 col-md-offset-2" data-ng-show="create && access.manageRealm"> | |
<button kc-save>{{:: 'save' | translate}}</button> | |
<button kc-cancel data-ng-click="cancel()">{{:: 'cancel' | translate}}</button> | |
</div> | |
</div> | |
<div class="form-group"> | |
- <div class="col-md-10 col-md-offset-2" data-ng-show="!create && access.manageUsers"> | |
+ <div class="col-md-10 col-md-offset-2" data-ng-show="!create && access.manageRealm"> | |
<button kc-save data-ng-disabled="!changed">{{:: 'save' | translate}}</button> | |
<button kc-reset data-ng-disabled="!changed">{{:: 'cancel' | translate}}</button> | |
</div> | |
diff -ru /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/themes/base/admin/resources/partials/federated-ldap.html /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/base/admin/resources/partials/federated-ldap.html | |
--- /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/themes/base/admin/resources/partials/federated-ldap.html 2016-10-26 04:17:48.000000000 -0400 | |
+++ /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/base/admin/resources/partials/federated-ldap.html 2016-11-23 15:37:56.000000000 -0500 | |
@@ -280,14 +280,14 @@ | |
</fieldset> | |
<div class="form-group"> | |
- <div class="col-md-10 col-md-offset-2" data-ng-show="create && access.manageUsers"> | |
+ <div class="col-md-10 col-md-offset-2" data-ng-show="create && access.manageRealm"> | |
<button kc-save>{{:: 'save' | translate}}</button> | |
<button kc-cancel data-ng-click="cancel()">{{:: 'cancel' | translate}}</button> | |
</div> | |
</div> | |
<div class="form-group"> | |
- <div class="col-md-10 col-md-offset-2" data-ng-show="!create && access.manageUsers"> | |
+ <div class="col-md-10 col-md-offset-2" data-ng-show="!create && access.manageRealm"> | |
<button kc-save data-ng-disabled="!changed">{{:: 'save' | translate}}</button> | |
<button kc-reset data-ng-disabled="!changed">{{:: 'cancel' | translate}}</button> | |
<button class="btn btn-primary" data-ng-click="triggerChangedUsersSync()" data-ng-hide="changed">{{:: 'synchronize-changed-users' | translate}}</button> | |
diff -ru /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/themes/base/admin/resources/partials/realm-identity-provider-oidc.html /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/base/admin/resources/partials/realm-identity-provider-oidc.html | |
--- /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/themes/base/admin/resources/partials/realm-identity-provider-oidc.html 2016-10-26 04:17:48.000000000 -0400 | |
+++ /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/base/admin/resources/partials/realm-identity-provider-oidc.html 2016-11-23 15:37:56.000000000 -0500 | |
@@ -222,8 +222,11 @@ | |
<input class="form-control" id="fromUrl" type="text" ng-model="fromUrl.data"> | |
</div> | |
<kc-tooltip>{{:: 'identity-provider.import-from-url.tooltip' | translate}}</kc-tooltip> | |
- <div class="col-md-6" data-ng-show="importUrl"> | |
- <button type="submit" data-ng-click="importFrom()" data-ng-show="importUrl" class="btn btn-primary">{{:: 'import' | translate}}</button> | |
+ </div> | |
+ <div class="form-group"> | |
+ <label class="col-md-2 control-label" for="importFrom"></label> | |
+ <div class="col-md-6"> | |
+ <button id="importFrom" type="button" data-ng-click="importFrom()" data-ng-show="importUrl" class="btn btn-primary">{{:: 'import' | translate}}</button> | |
</div> | |
</div> | |
<div class="form-group" data-ng-show="newIdentityProvider"> | |
@@ -238,8 +241,11 @@ | |
{{files[0].name}} | |
</span> | |
</div> | |
- <div class="col-md-6" data-ng-show="importFile"> | |
- <button type="submit" data-ng-click="uploadFile()" data-ng-show="importFile" class="btn btn-primary">{{:: 'import' | translate}}</button> | |
+ <div class="form-group"> | |
+ <label class="col-md-2 control-label" for="importFile"></label> | |
+ <div class="col-md-6" data-ng-show="importFile"> | |
+ <button id="importFile" type="button" data-ng-click="uploadFile()" data-ng-show="importFile" class="btn btn-primary">{{:: 'import' | translate}}</button> | |
+ </div> | |
</div> | |
</div> | |
</fieldset> | |
diff -ru /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/themes/base/admin/resources/partials/realm-identity-provider-saml.html /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/base/admin/resources/partials/realm-identity-provider-saml.html | |
--- /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/themes/base/admin/resources/partials/realm-identity-provider-saml.html 2016-10-26 04:17:48.000000000 -0400 | |
+++ /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/base/admin/resources/partials/realm-identity-provider-saml.html 2016-11-23 15:37:56.000000000 -0500 | |
@@ -191,8 +191,11 @@ | |
<input class="form-control" id="fromUrl" type="text" ng-model="fromUrl.data"> | |
</div> | |
<kc-tooltip>{{:: 'saml.import-from-url.tooltip' | translate}}</kc-tooltip> | |
- <div class="col-sm-4" data-ng-show="importUrl"> | |
- <button type="submit" data-ng-click="importFrom()" data-ng-show="importUrl" class="btn btn-primary">{{:: 'import' | translate}}</button> | |
+ </div> | |
+ <div class="form-group"> | |
+ <label class="col-md-2 control-label" for="importFrom"></label> | |
+ <div class="col-md-6"> | |
+ <button id="importFrom" type="button" data-ng-click="importFrom()" data-ng-show="importUrl" class="btn btn-primary">{{:: 'import' | translate}}</button> | |
</div> | |
</div> | |
<div class="form-group" data-ng-show="newIdentityProvider"> | |
@@ -206,8 +209,11 @@ | |
{{files[0].name}} | |
</span> | |
</div> | |
- <div class="col-sm-4" data-ng-show="importFile"> | |
- <button type="submit" data-ng-click="uploadFile()" data-ng-show="importFile" class="btn btn-primary">{{:: 'import' | translate}}</button> | |
+ <div class="form-group"> | |
+ <label class="col-md-2 control-label" for="importFile"></label> | |
+ <div class="col-sm-6" data-ng-show="importFile"> | |
+ <button id="importFile" type="button" data-ng-click="uploadFile()" data-ng-show="importFile" class="btn btn-primary">{{:: 'import' | translate}}</button> | |
+ </div> | |
</div> | |
</div> | |
</fieldset> | |
diff -ru /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/themes/base/admin/resources/partials/realm-keys-generic.html /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/base/admin/resources/partials/realm-keys-generic.html | |
--- /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/themes/base/admin/resources/partials/realm-keys-generic.html 2016-10-26 04:17:48.000000000 -0400 | |
+++ /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/base/admin/resources/partials/realm-keys-generic.html 2016-11-23 15:37:56.000000000 -0500 | |
@@ -41,19 +41,18 @@ | |
<div class="form-group clearfix"> | |
<label class="col-md-2 control-label" for="consoleDisplayName">{{:: 'console-display-name' | translate}} </label> | |
<div class="col-md-6"> | |
- <input class="form-control" id="consoleDisplayName" type="text" ng-model="instance.name" placeholder="{{:: 'defaults-to-id' | translate}}"> | |
+ <input required class="form-control" id="consoleDisplayName" type="text" ng-model="instance.name" placeholder="{{:: 'defaults-to-id' | translate}}"> | |
</div> | |
<kc-tooltip>{{:: 'console-display-name.tooltip' | translate}}</kc-tooltip> | |
</div> | |
<kc-component-config realm="realm" config="instance.config" properties="providerFactory.properties"></kc-component-config> | |
- | |
</fieldset> | |
<div class="form-group"> | |
<div class="col-md-10 col-md-offset-2" data-ng-show="create && access.manageRealm"> | |
- <button kc-save>{{:: 'save' | translate}}</button> | |
- <button kc-cancel data-ng-click="cancel()">{{:: 'cancel' | translate}}</button> | |
+ <button kc-save data-ng-disabled="!changed">{{:: 'save' | translate}}</button> | |
+ <button kc-cancel data-ng-disabled="!changed" data-ng-click="cancel()">{{:: 'cancel' | translate}}</button> | |
</div> | |
</div> | |
diff -ru /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/themes/base/admin/resources/partials/realm-keys-providers.html /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/base/admin/resources/partials/realm-keys-providers.html | |
--- /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/themes/base/admin/resources/partials/realm-keys-providers.html 2016-10-26 04:17:48.000000000 -0400 | |
+++ /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/base/admin/resources/partials/realm-keys-providers.html 2016-11-23 15:37:56.000000000 -0500 | |
@@ -26,7 +26,7 @@ | |
<table class="table table-striped table-bordered"> | |
<thead> | |
- <tr ng-show="providers.length > 0 && access.manageUsers"> | |
+ <tr ng-show="providers.length > 0 && access.manageRealm"> | |
<th colspan="6" class="kc-table-actions"> | |
<div class="pull-right"> | |
<div> | |
@@ -54,7 +54,7 @@ | |
<td>{{instance.providerId}}</td> | |
<td>{{instance.config['priority'][0]}}</td> | |
<td class="kc-action-cell" kc-open="/realms/{{realm.realm}}/keys/providers/{{instance.providerId}}/{{instance.id}}">{{:: 'edit' | translate}}</td> | |
- <td class="kc-action-cell" data-ng-click="removeInstance(instance)">{{:: 'delete' | translate}}</td> | |
+ <td class="kc-action-cell" ng-show="instances.length > 1" data-ng-click="removeInstance(instance)">{{:: 'delete' | translate}}</td> | |
</tr> | |
</tbody> | |
</table> | |
diff -ru /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/themes/base/admin/resources/partials/user-credentials.html /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/base/admin/resources/partials/user-credentials.html | |
--- /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/themes/base/admin/resources/partials/user-credentials.html 2016-10-26 04:17:48.000000000 -0400 | |
+++ /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/base/admin/resources/partials/user-credentials.html 2016-11-23 15:37:56.000000000 -0500 | |
@@ -11,7 +11,8 @@ | |
<input type="password" readonly value="this is not a login form" style="display: none;"> | |
<fieldset class="border-top"> | |
- <div class="form-group"> | |
+ <legend><span class="text">{{:: 'manage-user-password' | translate}}</span></legend> | |
+ <div class="form-group"> | |
<label class="col-md-2 control-label" for="password">{{:: 'new-password' | translate}} <span class="required" data-ng-show="create">*</span></label> | |
<div class="col-md-6"> | |
<input class="form-control" type="password" id="password" name="password" data-ng-model="password" required> | |
@@ -34,41 +35,56 @@ | |
</div> | |
<div class="form-group"> | |
- <div class="col-md-10 col-md-offset-2" data-ng-show="password && confirmPassword"> | |
+ <div class="col-md-10 col-md-offset-2" data-ng-show="passwordAndConfirmPasswordEntered()"> | |
<button class="btn btn-danger" type="submit" data-ng-click="resetPassword(true)">{{:: 'reset-password' | translate}}</button> | |
</div> | |
</div> | |
</fieldset> | |
- <fieldset class="border-top" data-ng-show="user.totp"> | |
- <div class="form-group" data-ng-show="user.totp"> | |
- <label class="col-md-2 control-label">{{:: 'remove-totp' | translate}}</label> | |
- <div class="col-sm-5" data-ng-show="user.totp"> | |
- <button class="btn btn-danger" type="submit" data-ng-click="removeTotp()" tooltip-trigger="mouseover mouseout" tooltip="{{:: 'credentials.remove-totp.tooltip' | translate}}" tooltip-placement="right">{{:: 'remove-totp' | translate}}</button> | |
- </div> | |
- </div> | |
- </fieldset > | |
- <fieldset class="border-top" data-ng-show="user.email"> | |
- <div class="form-group clearfix"> | |
- <label class="col-md-2 control-label" for="reqActions">{{:: 'reset-actions' | translate}}</label> | |
- | |
- <div class="col-md-6"> | |
- <select ui-select2 id="reqActions" ng-model="emailActions" data-placeholder="{{:: 'select-an-action.placeholder' | translate}}" multiple> | |
- <option ng-repeat="action in userReqActionList" value="{{action.alias}}">{{action.name}}</option> | |
- </select> | |
- </div> | |
- <kc-tooltip>{{:: 'credentials.reset-actions.tooltip' | translate}}</kc-tooltip> | |
- </div> | |
- <div class="form-group clearfix"> | |
- <label class="col-md-2 control-label" for="reqActionsEmail">{{:: 'reset-actions-email' | translate}}</label> | |
- | |
- <div class="col-md-6"> | |
- <button id="reqActionsEmail" class="btn btn-default" data-ng-click="sendExecuteActionsEmail()">{{:: 'send-email' | translate}}</button> | |
- </div> | |
- <kc-tooltip>{{:: 'credentials.reset-actions-email.tooltip' | translate}}</kc-tooltip> | |
- </div> | |
- </fieldset> | |
- </form> | |
+ <fieldset class="border-top" data-ng-show="user.disableableCredentialTypes && user.disableableCredentialTypes.length > 0"> | |
+ <legend><span class="text">{{:: 'disable-credentials' | translate}}</span></legend> | |
+ <div class="form-group clearfix"> | |
+ <label class="col-md-2 control-label" for="credentialTypeList">{{:: 'disableable-credential-types' | translate}}</label> | |
+ | |
+ <div class="col-md-6"> | |
+ <select ui-select2 id="credentialTypeList" ng-model="disableableCredentialTypes" data-placeholder="{{:: 'select-a-type.placeholder' | translate}}" multiple> | |
+ <option ng-repeat="credType in user.disableableCredentialTypes" value="{{credType}}">{{credType}}</option> | |
+ </select> | |
+ </div> | |
+ <kc-tooltip>{{:: 'credentials.disableable.tooltip' | translate}}</kc-tooltip> | |
+ </div> | |
+ <div class="form-group clearfix"> | |
+ <label class="col-md-2 control-label" for="disableCredentialTypes">{{:: 'disable-credential-types' | translate}}</label> | |
+ | |
+ <div class="col-md-6"> | |
+ <button type="button" id="disableCredentialTypes" class="btn btn-default" data-ng-click="disableCredentialTypes()">{{:: 'disable' | translate}}</button> | |
+ </div> | |
+ <kc-tooltip>{{:: 'credentials.disable.tooltip' | translate}}</kc-tooltip> | |
+ </div> | |
+ </fieldset> | |
+ | |
+ <fieldset class="border-top" data-ng-show="user.email"> | |
+ <legend><span class="text">{{:: 'credential-reset-actions' | translate}}</span></legend> | |
+ <div class="form-group clearfix"> | |
+ <label class="col-md-2 control-label" for="reqActions">{{:: 'reset-actions' | translate}}</label> | |
+ | |
+ <div class="col-md-6"> | |
+ <select ui-select2 id="reqActions" ng-model="emailActions" data-placeholder="{{:: 'select-an-action.placeholder' | translate}}" multiple> | |
+ <option ng-repeat="action in userReqActionList" value="{{action.alias}}">{{action.name}}</option> | |
+ </select> | |
+ </div> | |
+ <kc-tooltip>{{:: 'credentials.reset-actions.tooltip' | translate}}</kc-tooltip> | |
+ </div> | |
+ <div class="form-group clearfix"> | |
+ <label class="col-md-2 control-label" for="reqActionsEmail">{{:: 'reset-actions-email' | translate}}</label> | |
+ | |
+ <div class="col-md-6"> | |
+ <button type="button" id="reqActionsEmail" class="btn btn-default" data-ng-click="sendExecuteActionsEmail()">{{:: 'send-email' | translate}}</button> | |
+ </div> | |
+ <kc-tooltip>{{:: 'credentials.reset-actions-email.tooltip' | translate}}</kc-tooltip> | |
+ </div> | |
+ </fieldset> | |
+ </form> | |
</div> | |
<kc-menu></kc-menu> | |
diff -ru /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/themes/base/admin/resources/partials/user-detail.html /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/base/admin/resources/partials/user-detail.html | |
--- /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/themes/base/admin/resources/partials/user-detail.html 2016-10-26 04:17:48.000000000 -0400 | |
+++ /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/base/admin/resources/partials/user-detail.html 2016-11-23 15:37:56.000000000 -0500 | |
@@ -82,6 +82,12 @@ | |
<a href="{{federationLink}}">{{federationLinkName}}</a> | |
</div> | |
</div> | |
+ <div class="form-group clearfix block" data-ng-show="!create && user.origin"> | |
+ <label class="col-md-2 control-label">{{:: 'user-origin-link' | translate}}</label> | |
+ <div class="col-md-6"> | |
+ <a href="{{originLink}}">{{originName}}</a> | |
+ </div> | |
+ </div> | |
<div class="form-group clearfix block"> | |
<label class="col-md-2 control-label" for="emailVerified">{{:: 'email-verified' | translate}}</label> | |
<div class="col-md-6"> | |
diff -ru /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/themes/base/admin/resources/partials/user-federation.html /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/base/admin/resources/partials/user-federation.html | |
--- /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/themes/base/admin/resources/partials/user-federation.html 2016-10-26 04:17:48.000000000 -0400 | |
+++ /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/base/admin/resources/partials/user-federation.html 2016-11-23 15:37:56.000000000 -0500 | |
@@ -13,7 +13,7 @@ | |
<p>Keycloak can federate external user databases. Out of the box we have support for LDAP and Active Directory.</p> | |
<p>To get started select a provider from the dropdown below:</p> | |
<div class="blank-slate-pf-main-action"> | |
- <div class="row" data-ng-show="access.manageUsers"> | |
+ <div class="row" data-ng-show="access.manageRealm"> | |
<div class="col-sm-4 col-sm-offset-4"> | |
<div class="form-group"> | |
<select class="form-control" ng-model="selectedProvider" | |
@@ -29,7 +29,7 @@ | |
<table class="table table-striped table-bordered" data-ng-show="instances && instances.length > 0"> | |
<thead> | |
- <tr ng-show="providers.length > 0 && access.manageUsers"> | |
+ <tr ng-show="providers.length > 0 && access.manageRealm"> | |
<th colspan="5" class="kc-table-actions"> | |
<div class="pull-right"> | |
<div> | |
diff -ru /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/themes/base/admin/resources/partials/user-storage-generic.html /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/base/admin/resources/partials/user-storage-generic.html | |
--- /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/themes/base/admin/resources/partials/user-storage-generic.html 2016-10-26 04:17:48.000000000 -0400 | |
+++ /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/base/admin/resources/partials/user-storage-generic.html 2016-11-23 15:37:56.000000000 -0500 | |
@@ -68,15 +68,163 @@ | |
</fieldset> | |
+ <fieldset> | |
+ <legend><span class="text">{{:: 'user-storage-cache-policy' | translate}}</span></legend> | |
+ <div class="form-group"> | |
+ <label for="cachePolicy" class="col-md-2 control-label">{{:: 'userStorage.cachePolicy' | translate}}</label> | |
+ <div class="col-md-2"> | |
+ <div> | |
+ <select id="cachePolicy" ng-model="instance.config['cachePolicy'][0]" class="form-control"> | |
+ <option value="DEFAULT">{{:: 'userStorage.cachePolicy.option.DEFAULT' | translate}}</option> | |
+ <option value="EVICT_DAILY">{{:: 'userStorage.cachePolicy.option.EVICT_DAILY' | translate}}</option> | |
+ <option value="EVICT_WEEKLY">{{:: 'userStorage.cachePolicy.option.EVICT_WEEKLY' | translate}}</option> | |
+ <option value="MAX_LIFESPAN">{{:: 'userStorage.cachePolicy.option.MAX_LIFESPAN' | translate}}</option> | |
+ <option value="NO_CACHE">{{:: 'userStorage.cachePolicy.option.NO_CACHE' | translate}}</option> | |
+ </select> | |
+ </div> | |
+ </div> | |
+ <kc-tooltip>{{:: 'userStorage.cachePolicy.tooltip' | translate}}</kc-tooltip> | |
+ </div> | |
+ <div class="form-group" data-ng-show="instance.config['cachePolicy'][0] == 'EVICT_WEEKLY'"> | |
+ <label for="evictionDay" class="col-md-2 control-label">{{:: 'userStorage.evictionDay' | translate}}</label> | |
+ <div class="col-md-2"> | |
+ <div> | |
+ <select id="evictionDay" ng-model="instance.config['evictionDay'][0]" class="form-control"> | |
+ <option value="1">{{:: 'Sunday' | translate}}</option> | |
+ <option value="2">{{:: 'Monday' | translate}}</option> | |
+ <option value="3">{{:: 'Tuesday' | translate}}</option> | |
+ <option value="4">{{:: 'Wednesday' | translate}}</option> | |
+ <option value="5">{{:: 'Thursday' | translate}}</option> | |
+ <option value="6">{{:: 'Friday' | translate}}</option> | |
+ <option value="7">{{:: 'Saturday' | translate}}</option> | |
+ </select> | |
+ </div> | |
+ </div> | |
+ <kc-tooltip>{{:: 'userStorage.cachePolicy.evictionDay.tooltip' | translate}}</kc-tooltip> | |
+ </div> | |
+ <div class="form-group clearfix" data-ng-show="instance.config['cachePolicy'][0] == 'EVICT_WEEKLY' || instance.config['cachePolicy'][0] == 'EVICT_DAILY'"> | |
+ <label class="col-md-2 control-label" for="evictionHour">{{:: 'userStorage.cachePolicy.evictionHour' | translate}}</label> | |
+ <div class="col-md-2"> | |
+ <div> | |
+ <select id="evictionHour" ng-model="instance.config['evictionHour'][0]" class="form-control"> | |
+ <option value="0">00</option> | |
+ <option value="1">01</option> | |
+ <option value="2">02</option> | |
+ <option value="3">03</option> | |
+ <option value="4">04</option> | |
+ <option value="5">05</option> | |
+ <option value="6">06</option> | |
+ <option value="7">07</option> | |
+ <option value="8">08</option> | |
+ <option value="9">09</option> | |
+ <option value="10">10</option> | |
+ <option value="11">11</option> | |
+ <option value="12">12</option> | |
+ <option value="13">13</option> | |
+ <option value="14">14</option> | |
+ <option value="15">15</option> | |
+ <option value="16">16</option> | |
+ <option value="17">17</option> | |
+ <option value="18">18</option> | |
+ <option value="19">19</option> | |
+ <option value="20">20</option> | |
+ <option value="21">21</option> | |
+ <option value="22">22</option> | |
+ <option value="23">23</option> | |
+ </select> | |
+ </div> | |
+ </div> | |
+ <kc-tooltip>{{:: 'userStorage.cachePolicy.evictionHour.tooltip' | translate}}</kc-tooltip> | |
+ </div> | |
+ <div class="form-group clearfix" data-ng-show="instance.config['cachePolicy'][0] == 'EVICT_WEEKLY' || instance.config['cachePolicy'][0] == 'EVICT_DAILY'"> | |
+ <label class="col-md-2 control-label" for="evictionMinute">{{:: 'userStorage.cachePolicy.evictionMinute' | translate}}</label> | |
+ <div class="col-md-2"> | |
+ <div> | |
+ <select id="evictionMinute" ng-model="instance.config['evictionMinute'][0]" class="form-control"> | |
+ <option value="0">00</option> | |
+ <option value="1">01</option> | |
+ <option value="2">02</option> | |
+ <option value="3">03</option> | |
+ <option value="4">04</option> | |
+ <option value="5">05</option> | |
+ <option value="6">06</option> | |
+ <option value="7">07</option> | |
+ <option value="8">08</option> | |
+ <option value="9">09</option> | |
+ <option value="10">10</option> | |
+ <option value="11">11</option> | |
+ <option value="12">12</option> | |
+ <option value="13">13</option> | |
+ <option value="14">14</option> | |
+ <option value="15">15</option> | |
+ <option value="16">16</option> | |
+ <option value="17">17</option> | |
+ <option value="18">18</option> | |
+ <option value="19">19</option> | |
+ <option value="20">20</option> | |
+ <option value="21">21</option> | |
+ <option value="22">22</option> | |
+ <option value="23">23</option> | |
+ <option value="24">24</option> | |
+ <option value="25">25</option> | |
+ <option value="26">26</option> | |
+ <option value="27">27</option> | |
+ <option value="28">28</option> | |
+ <option value="29">29</option> | |
+ <option value="30">30</option> | |
+ <option value="31">31</option> | |
+ <option value="32">32</option> | |
+ <option value="33">33</option> | |
+ <option value="34">34</option> | |
+ <option value="35">35</option> | |
+ <option value="36">36</option> | |
+ <option value="37">37</option> | |
+ <option value="38">38</option> | |
+ <option value="39">39</option> | |
+ <option value="40">40</option> | |
+ <option value="41">41</option> | |
+ <option value="42">42</option> | |
+ <option value="43">43</option> | |
+ <option value="44">44</option> | |
+ <option value="45">45</option> | |
+ <option value="46">46</option> | |
+ <option value="47">47</option> | |
+ <option value="48">48</option> | |
+ <option value="49">49</option> | |
+ <option value="50">50</option> | |
+ <option value="51">51</option> | |
+ <option value="52">52</option> | |
+ <option value="53">53</option> | |
+ <option value="54">54</option> | |
+ <option value="55">55</option> | |
+ <option value="56">56</option> | |
+ <option value="57">57</option> | |
+ <option value="58">58</option> | |
+ <option value="59">59</option> | |
+ </select> | |
+ </div> | |
+ </div> | |
+ <kc-tooltip>{{:: 'userStorage.cachePolicy.evictionMinute.tooltip' | translate}}</kc-tooltip> | |
+ </div> | |
+ <div class="form-group clearfix" data-ng-show="instance.config['cachePolicy'][0] == 'MAX_LIFESPAN'"> | |
+ <label class="col-md-2 control-label" for="maxLifespan">{{:: 'userStorage.cachePolicy.maxLifespan' | translate}}</label> | |
+ <div class="col-md-6"> | |
+ <input class="form-control" type="text" ng-model="instance.config['maxLifespan'][0]" id="maxLifespan" /> | |
+ </div> | |
+ <kc-tooltip>{{:: 'userStorage.cachePolicy.maxLifespan.tooltip' | translate}}</kc-tooltip> | |
+ </div> | |
+ </fieldset> | |
+ | |
+ | |
<div class="form-group"> | |
- <div class="col-md-10 col-md-offset-2" data-ng-show="create && access.manageUsers"> | |
+ <div class="col-md-10 col-md-offset-2" data-ng-show="create && access.manageRealm"> | |
<button kc-save>{{:: 'save' | translate}}</button> | |
<button kc-cancel data-ng-click="cancel()">{{:: 'cancel' | translate}}</button> | |
</div> | |
</div> | |
<div class="form-group"> | |
- <div class="col-md-10 col-md-offset-2" data-ng-show="!create && access.manageUsers"> | |
+ <div class="col-md-10 col-md-offset-2" data-ng-show="!create && access.manageRealm"> | |
<button kc-save data-ng-disabled="!changed">{{:: 'save' | translate}}</button> | |
<button kc-reset data-ng-disabled="!changed">{{:: 'cancel' | translate}}</button> | |
<button class="btn btn-primary" data-ng-click="triggerChangedUsersSync()" data-ng-hide="changed || !showSync">{{:: 'synchronize-changed-users' | translate}}</button> | |
Only in /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/base/admin/resources/partials: user-storage-ldap-mapper-detail.html | |
Only in /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/base/admin/resources/partials: user-storage-ldap-mappers.html | |
Only in /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/base/admin/resources/partials: user-storage-ldap.html | |
diff -ru /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/themes/base/admin/resources/partials/user-storage.html /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/base/admin/resources/partials/user-storage.html | |
--- /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/themes/base/admin/resources/partials/user-storage.html 2016-10-26 04:17:48.000000000 -0400 | |
+++ /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/base/admin/resources/partials/user-storage.html 2016-11-23 15:37:56.000000000 -0500 | |
@@ -5,7 +5,7 @@ | |
<table class="table table-striped table-bordered"> | |
<thead> | |
- <tr ng-show="providers.length > 0 && access.manageUsers"> | |
+ <tr ng-show="providers.length > 0 && access.manageRealm"> | |
<th colspan="5" class="kc-table-actions"> | |
<div class="pull-right"> | |
<div> | |
diff -ru /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/themes/base/admin/resources/templates/kc-component-config.html /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/base/admin/resources/templates/kc-component-config.html | |
--- /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/themes/base/admin/resources/templates/kc-component-config.html 2016-10-26 04:17:48.000000000 -0400 | |
+++ /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/base/admin/resources/templates/kc-component-config.html 2016-11-23 15:37:56.000000000 -0500 | |
@@ -2,36 +2,36 @@ | |
<div data-ng-repeat="option in properties" class="form-group" data-ng-controller="ProviderConfigCtrl"> | |
<label class="col-md-2 control-label">{{:: option.label | translate}}</label> | |
- <div class="col-md-6" data-ng-show="option.type == 'String'"> | |
+ <div class="col-md-6" data-ng-if="option.type == 'String'"> | |
<input class="form-control" type="text" data-ng-model="config[ option.name ][0]" > | |
</div> | |
- <div class="col-md-6" data-ng-show="option.type == 'Password'"> | |
+ <div class="col-md-6" data-ng-if="option.type == 'Password'"> | |
<input class="form-control" type="password" data-ng-model="config[ option.name ][0]" > | |
</div> | |
- <div class="col-md-6" data-ng-show="option.type == 'boolean'"> | |
+ <div class="col-md-6" data-ng-if="option.type == 'boolean'"> | |
<input ng-model="config[ option.name ][0]" value="'true'" id="option.name" name="option.name" onoffswitchstring on-text="{{:: 'onText' | translate}}" off-text="{{:: 'offText' | translate}}"/> | |
</div> | |
- <div class="col-md-6" data-ng-show="option.type == 'List'"> | |
+ <div class="col-md-6" data-ng-if="option.type == 'List'"> | |
<select ng-model="config[ option.name ][0]" ng-options="data for data in option.options"> | |
<option value="" selected> {{:: 'selectOne' | translate}} </option> | |
</select> | |
</div> | |
- <div class="col-md-6" data-ng-show="option.type == 'MultivaluedList'"> | |
+ <div class="col-md-6" data-ng-if="option.type == 'MultivaluedList'"> | |
<select ui-select2 data-ng-model="config[ option.name ]" data-placeholder="{{:: 'selectMultiple' | translate}}..." multiple> | |
<option ng-repeat="val in option.options" value="{{val}}" ng-selected="true">{{val}}</option> | |
</select> | |
</div> | |
- <div class="col-md-6" data-ng-show="option.type == 'Role'"> | |
+ <div class="col-md-6" data-ng-if="option.type == 'Role'"> | |
<div class="row"> | |
<div class="col-md-8"> | |
<input class="form-control" type="text" data-ng-model="config[ option.name ][0]" > | |
</div> | |
<div class="col-md-2"> | |
- <button type="submit" data-ng-click="openRoleSelector(option.name, config)" class="btn btn-default" tooltip-placement="top" tooltip-trigger="mouseover mouseout" tooltip="{{:: 'selectRole.tooltip' | translate}}">{{:: 'selectRole.label' | translate}}</button> | |
+ <button type="button" data-ng-click="openRoleSelector(option.name, config)" class="btn btn-default" tooltip-placement="top" tooltip-trigger="mouseover mouseout" tooltip="{{:: 'selectRole.tooltip' | translate}}">{{:: 'selectRole.label' | translate}}</button> | |
</div> | |
</div> | |
</div> | |
- <div class="col-md-4" data-ng-show="option.type == 'ClientList'"> | |
+ <div class="col-md-4" data-ng-if="option.type == 'ClientList'"> | |
<select ng-model="config[ option.name ][0]" ng-options="client.clientId as client.clientId for client in clients"> | |
<option value="" selected> {{:: 'selectOne' | translate}} </option> | |
</select> | |
@@ -54,17 +54,15 @@ | |
<div class="col-sm-6" data-ng-if="option.type == 'MultivaluedString'"> | |
<div class="input-group" ng-repeat="(i, currentOption) in config[option.name] track by $index"> | |
<input class="form-control" ng-model="config[option.name][i]"> | |
- <div class="input-group-btn"> | |
+ <div class="input-group-btn" data-ng-if="$index < config[option.name].length - 1"> | |
<button class="btn btn-default" type="button" data-ng-click="deleteValueFromMultivalued(option.name, $index)"><span class="fa fa-minus"></span></button> | |
</div> | |
- </div> | |
- <div class="input-group"> | |
- <input class="form-control" ng-model="newValues[option.name]"> | |
- <div class="input-group-btn"> | |
- <button class="btn btn-default" type="button" data-ng-click="newValues[option.name].length > 0 && addValueToMultivalued(option.name)"><span class="fa fa-plus"></span></button> | |
+ <div class="input-group-btn" data-ng-if="$index === config[option.name].length - 1"> | |
+ <button class="btn btn-default" type="button" data-ng-click="addValueToMultivalued(option.name)"><span class="fa fa-plus"></span></button> | |
</div> | |
</div> | |
+ | |
</div> | |
<kc-tooltip>{{:: option.helpText | translate}}</kc-tooltip> | |
diff -ru /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/themes/base/admin/resources/templates/kc-menu.html /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/base/admin/resources/templates/kc-menu.html | |
--- /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/themes/base/admin/resources/templates/kc-menu.html 2016-10-26 04:17:48.000000000 -0400 | |
+++ /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/base/admin/resources/templates/kc-menu.html 2016-11-23 15:37:56.000000000 -0500 | |
@@ -22,8 +22,10 @@ | |
<li data-ng-show="access.viewRealm" data-ng-class="((!path[2] | |
|| path[2] == 'required-credentials' | |
|| path[2] == 'login-settings' | |
+ || path[2] == 'keys' | |
|| path[2] == 'theme-settings' | |
|| path[2] == 'token-settings' | |
+ || path[2] == 'client-registration' | |
|| path[2] == 'cache-settings' | |
|| path[2] == 'client-initial-access' | |
|| path[2] == 'defense' | |
@@ -33,8 +35,13 @@ | |
<li data-ng-show="access.viewClients" data-ng-class="(path[2] == 'clients' || path[1] == 'client' || path[3] == 'clients') && 'active'"><a href="#/realms/{{realm.realm}}/clients"><i class="fa fa-cube"></i> {{:: 'clients' | translate}}</a></li> | |
<li data-ng-show="access.viewClients" data-ng-class="(path[2] == 'client-templates' || path[1] == 'client-template' || path[3] == 'client-templates') && 'active'"><a href="#/realms/{{realm.realm}}/client-templates"><i class="fa fa-cubes"></i> {{:: 'client-templates' | translate}}</a></li> | |
<li data-ng-show="access.viewRealm" data-ng-class="(path[2] == 'roles' || path[2] == 'default-roles' || (path[1] == 'role' && path[3] != 'clients')) && 'active'"><a href="#/realms/{{realm.realm}}/roles"><i class="fa fa-tasks"></i> {{:: 'roles' | translate}}</a></li> | |
- <li data-ng-show="access.viewIdentityProviders" data-ng-class="(path[2] == 'identity-provider-settings' || path[2] == 'identity-provider-mappers') && 'active'"><a href="#/realms/{{realm.realm}}/identity-provider-settings"><i class="fa fa-exchange"></i> {{:: 'identity-providers' | translate}}</a></li> | |
- <li data-ng-show="access.viewUsers" data-ng-class="(path[1] == 'user-federation' || path[2] == 'user-federation') && 'active'"><a href="#/realms/{{realm.realm}}/user-federation"><i class="fa fa-database"></i> {{:: 'user-federation' | translate}}</a></li> | |
+ <li data-ng-show="access.viewIdentityProviders" data-ng-class="(path[2] == 'identity-provider-settings' | |
+ || path[2] == 'identity-provider-mappers' | |
+ || path[1] == 'identity-provider-mappers' | |
+ || path[1] == 'identity-provider') && 'active'"><a href="#/realms/{{realm.realm}}/identity-provider-settings"><i class="fa fa-exchange"></i> {{:: 'identity-providers' | translate}}</a></li> | |
+ <li data-ng-show="access.viewRealm" data-ng-class="(path[1] == 'user-federation' | |
+ || path[2] == 'user-federation' | |
+ || path[1] == 'user-federation-mappers') && 'active'"><a href="#/realms/{{realm.realm}}/user-federation"><i class="fa fa-database"></i> {{:: 'user-federation' | translate}}</a></li> | |
<li data-ng-show="access.viewRealm" data-ng-class="(path[1] == 'authentication' || path[2] == 'authentication') && 'active'"><a href="#/realms/{{realm.realm}}/authentication/flows"><i class="fa fa-lock"></i> {{:: 'authentication' | translate}}</a></li> | |
</ul> | |
</div> | |
@@ -42,10 +49,16 @@ | |
<div class="nav-category" data-ng-show="current.realm"> | |
<h2>{{:: 'manage' | translate}}</h2> | |
<ul class="nav nav-pills nav-stacked"> | |
- <li data-ng-show="access.viewUsers" data-ng-class="(path[2] == 'groups' || path[1] == 'group') && 'active'"><a href="#/realms/{{realm.realm}}/groups"><span class="pficon pficon-users"></span> {{:: 'groups' | translate}}</a></li> | |
- <li data-ng-show="access.viewUsers" data-ng-class="(path[2] == 'users' || path[1] == 'user') && 'active'"><a href="#/realms/{{realm.realm}}/users"><span class="pficon pficon-user"></span> {{:: 'users' | translate}}</a></li> | |
+ <li data-ng-show="access.viewUsers" data-ng-class="(path[2] == 'groups' | |
+ || path[1] == 'group' | |
+ || path[2] == 'default-groups') && 'active'"><a href="#/realms/{{realm.realm}}/groups"><span class="pficon pficon-users"></span> {{:: 'groups' | translate}}</a></li> | |
+ <li data-ng-show="access.viewUsers" data-ng-class="(path[2] == 'users' | |
+ || path[1] == 'user' | |
+ || path[1] == 'federated-identity') && 'active'"><a href="#/realms/{{realm.realm}}/users"><span class="pficon pficon-user"></span> {{:: 'users' | translate}}</a></li> | |
<li data-ng-show="access.viewRealm" data-ng-class="(path[2] == 'sessions') && 'active'"><a href="#/realms/{{realm.realm}}/sessions/realm"><i class="fa fa-clock-o"></i> {{:: 'sessions' | translate}}</a></li> | |
- <li data-ng-show="access.viewEvents" data-ng-class="(path[2] == 'events' || path[2] == 'events-settings') && 'active'"><a href="#/realms/{{realm.realm}}/events"><i class="fa fa-calendar"></i> {{:: 'events' | translate}}</a></li> | |
+ <li data-ng-show="access.viewEvents" data-ng-class="(path[2] == 'events' | |
+ || path[2] == 'events-settings' | |
+ || path[2] == 'admin-events') && 'active'"><a href="#/realms/{{realm.realm}}/events"><i class="fa fa-calendar"></i> {{:: 'events' | translate}}</a></li> | |
<li data-ng-show="access.manageRealm" ng-class="(path[2] =='partial-import') && 'active'"><a href="#/realms/{{realm.realm}}/partial-import"><span class="pficon pficon-import"></span> {{:: 'import' | translate}}</a></li> | |
</ul> | |
</div> | |
diff -ru /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/themes/base/admin/resources/templates/kc-provider-config.html /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/base/admin/resources/templates/kc-provider-config.html | |
--- /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/themes/base/admin/resources/templates/kc-provider-config.html 2016-10-26 04:17:48.000000000 -0400 | |
+++ /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/base/admin/resources/templates/kc-provider-config.html 2016-11-23 15:37:56.000000000 -0500 | |
@@ -22,7 +22,7 @@ | |
<input class="form-control" type="text" data-ng-model="config[ option.name ]" > | |
</div> | |
<div class="col-md-2"> | |
- <button type="submit" data-ng-click="openRoleSelector(option.name, config)" class="btn btn-default" tooltip-placement="top" tooltip-trigger="mouseover mouseout" tooltip="{{:: 'selectRole.tooltip' | translate}}">{{:: 'selectRole.label' | translate}}</button> | |
+ <button type="button" data-ng-click="openRoleSelector(option.name, config)" class="btn btn-default" tooltip-placement="top" tooltip-trigger="mouseover mouseout" tooltip="{{:: 'selectRole.tooltip' | translate}}">{{:: 'selectRole.label' | translate}}</button> | |
</div> | |
</div> | |
</div> | |
Only in /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/base/admin/resources/templates: kc-tabs-ldap.html | |
diff -ru /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/themes/base/login/login-config-totp.ftl /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/base/login/login-config-totp.ftl | |
--- /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/themes/base/login/login-config-totp.ftl 2016-10-26 04:17:48.000000000 -0400 | |
+++ /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/base/login/login-config-totp.ftl 2016-11-23 15:37:56.000000000 -0500 | |
@@ -5,41 +5,28 @@ | |
<#elseif section = "header"> | |
${msg("loginTotpTitle")} | |
<#elseif section = "form"> | |
- <form action="${url.loginAction}" class="${properties.kcFormClass!}" id="kc-totp-settings-form" method="post"> | |
- <div class="${properties.kcFormGroupClass!}"> | |
- <div class="${properties.kcLabelWrapperClass!}"> | |
- <label for="otp" class="${properties.kcLabelClass!}">${msg("loginTotpOneTime")}</label> | |
- </div> | |
- <div class="${properties.kcInputWrapperClass!}"> | |
- <input type="text" id="totp" name="totp" autocomplete="off" class="${properties.kcInputClass!}" /> | |
- </div> | |
- <input type="hidden" id="totpSecret" name="totpSecret" value="${totp.totpSecret}" /> | |
+<ol id="kc-totp-settings"> | |
+ <li> | |
+ <p>${msg("loginTotpStep1")}</p> | |
+ </li> | |
+ <li> | |
+ <p>${msg("loginTotpStep2")}</p> | |
+ <img src="data:image/png;base64, ${totp.totpSecretQrCode}" alt="Figure: Barcode"><br/> | |
+ <span class="code">${totp.totpSecretEncoded}</span> | |
+ </li> | |
+ <li> | |
+ <p>${msg("loginTotpStep3")}</p> | |
+ </li> | |
+ </ol> | |
+ <form action="${url.loginAction}" class="${properties.kcFormClass!}" id="kc-totp-settings-form" method="post"> | |
+ <div class="${properties.kcFormGroupClass!}"> | |
+ <div class="${properties.kcInputWrapperClass!}"> | |
+ <input type="text" id="totp" name="totp" autocomplete="off" class="${properties.kcInputClass!}" /> | |
</div> | |
+ <input type="hidden" id="totpSecret" name="totpSecret" value="${totp.totpSecret}" /> | |
+ </div> | |
- <div class="${properties.kcFormGroupClass!}"> | |
- <div id="kc-form-options" class="${properties.kcFormOptionsClass!}"> | |
- <div class="${properties.kcFormOptionsWrapperClass!}"> | |
- </div> | |
- </div> | |
- | |
- <div id="kc-form-buttons" class="${properties.kcFormButtonsClass!}"> | |
- <input class="${properties.kcButtonClass!} ${properties.kcButtonPrimaryClass!} ${properties.kcButtonLargeClass!}" type="submit" value="${msg("doSubmit")}"/> | |
- </div> | |
- </div> | |
- </form> | |
- <#elseif section = "info" > | |
- <ol id="kc-totp-settings"> | |
- <li> | |
- <p>${msg("loginTotpStep1")}</p> | |
- </li> | |
- <li> | |
- <p>${msg("loginTotpStep2")}</p> | |
- <img src="data:image/png;base64, ${totp.totpSecretQrCode}" alt="Figure: Barcode"><br/> | |
- <span class="code">${totp.totpSecretEncoded}</span> | |
- </li> | |
- <li> | |
- <p>${msg("loginTotpStep3")}</p> | |
- </li> | |
- </ol> | |
+ <input class="${properties.kcButtonClass!} ${properties.kcButtonPrimaryClass!} ${properties.kcButtonLargeClass!}" type="submit" value="${msg("doSubmit")}"/> | |
+ </form> | |
</#if> | |
</@layout.registrationLayout> | |
diff -ru /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/themes/keycloak/account/resources/css/account.css /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/keycloak/account/resources/css/account.css | |
--- /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/themes/keycloak/account/resources/css/account.css 2016-10-26 04:17:48.000000000 -0400 | |
+++ /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/keycloak/account/resources/css/account.css 2016-11-23 15:37:56.000000000 -0500 | |
@@ -208,18 +208,6 @@ | |
border: 1px solid #eee; | |
} | |
-ol li span { | |
- padding: 15px; | |
- background-color: #f5f5f5; | |
- border: 1px solid #eee; | |
- top: 46px; | |
- left: 270px; | |
- right: 50px; | |
- position: absolute; | |
- font-family: courier, monospace; | |
- font-size: 25px; | |
-} | |
- | |
hr + .form-horizontal { | |
border: none; | |
padding-top: 0; | |
diff -ru /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/themes/keycloak/common/resources/lib/filesaver/FileSaver.js /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/keycloak/common/resources/lib/filesaver/FileSaver.js | |
--- /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/themes/keycloak/common/resources/lib/filesaver/FileSaver.js 2016-10-26 04:17:48.000000000 -0400 | |
+++ /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/keycloak/common/resources/lib/filesaver/FileSaver.js 2016-11-23 15:37:56.000000000 -0500 | |
@@ -1,10 +1,11 @@ | |
/* FileSaver.js | |
- * A saveAs() FileSaver implementation. | |
- * 2014-05-27 | |
+ * A saveAs() FileSaver implementation. | |
+ * 1.3.2 | |
+ * 2016-06-16 18:25:19 | |
* | |
- * By Eli Grey, http://eligrey.com | |
- * License: X11/MIT | |
- * See https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md | |
+ * By Eli Grey, http://eligrey.com | |
+ * License: MIT | |
+ * See https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md | |
*/ | |
/*global self */ | |
@@ -12,16 +13,10 @@ | |
/*! @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) { | |
+var saveAs = saveAs || (function(view) { | |
"use strict"; | |
// IE <10 is explicitly unsupported | |
- if (typeof navigator !== "undefined" && | |
- /MSIE [1-9]\./.test(navigator.userAgent)) { | |
+ if (typeof view === "undefined" || typeof navigator !== "undefined" && /MSIE [1-9]\./.test(navigator.userAgent)) { | |
return; | |
} | |
var | |
@@ -31,36 +26,30 @@ | |
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 | |
+ , can_use_save_link = "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 | |
- ); | |
+ var event = new MouseEvent("click"); | |
node.dispatchEvent(event); | |
} | |
- , webkit_req_fs = view.webkitRequestFileSystem | |
- , req_fs = view.requestFileSystem || webkit_req_fs || view.mozRequestFileSystem | |
+ , is_safari = /constructor/i.test(view.HTMLElement) || view.safari | |
+ , is_chrome_ios =/CriOS\/[\d]+/.test(navigator.userAgent) | |
, 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]; | |
+ // the Blob API is fundamentally broken as there is no "downloadfinished" event to subscribe to | |
+ , arbitrary_revoke_timeout = 1000 * 40 // in ms | |
+ , revoke = function(file) { | |
+ var revoker = function() { | |
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 | |
+ }; | |
+ setTimeout(revoker, arbitrary_revoke_timeout); | |
} | |
, dispatch = function(filesaver, event_types, event) { | |
event_types = [].concat(event_types); | |
@@ -76,134 +65,97 @@ | |
} | |
} | |
} | |
- , FileSaver = function(blob, name) { | |
+ , auto_bom = function(blob) { | |
+ // prepend BOM for UTF-8 XML and text/* types (including HTML) | |
+ // note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF | |
+ if (/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(blob.type)) { | |
+ return new Blob([String.fromCharCode(0xFEFF), blob], {type: blob.type}); | |
+ } | |
+ return blob; | |
+ } | |
+ , FileSaver = function(blob, name, no_auto_bom) { | |
+ if (!no_auto_bom) { | |
+ blob = auto_bom(blob); | |
+ } | |
// First try a.download, then web filesystem, then object URLs | |
var | |
filesaver = this | |
, type = blob.type | |
- , blob_changed = false | |
+ , force = type === force_saveable_type | |
, 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() { | |
+ if ((is_chrome_ios || (force && is_safari)) && view.FileReader) { | |
+ // Safari doesn't allow downloading of blob urls | |
+ var reader = new FileReader(); | |
+ reader.onloadend = function() { | |
+ var url = is_chrome_ios ? reader.result : reader.result.replace(/^data:[^;]*;/, 'data:attachment/file;'); | |
+ var popup = view.open(url, '_blank'); | |
+ if(!popup) view.location.href = url; | |
+ url=undefined; // release reference before dispatching | |
+ filesaver.readyState = filesaver.DONE; | |
+ dispatch_all(); | |
+ }; | |
+ reader.readAsDataURL(blob); | |
+ filesaver.readyState = filesaver.INIT; | |
+ return; | |
+ } | |
// don't create more object URLs than needed | |
- if (blob_changed || !object_url) { | |
- object_url = get_object_url(blob); | |
+ if (!object_url) { | |
+ object_url = get_URL().createObjectURL(blob); | |
} | |
- if (target_view) { | |
- target_view.location.href = object_url; | |
+ if (force) { | |
+ view.location.href = object_url; | |
} else { | |
- window.open(object_url, "_blank"); | |
+ var opened = view.open(object_url, "_blank"); | |
+ if (!opened) { | |
+ // Apple does not allow window.open, see https://developer.apple.com/library/safari/documentation/Tools/Conceptual/SafariExtensionGuide/WorkingwithWindowsandTabs/WorkingwithWindowsandTabs.html | |
+ view.location.href = object_url; | |
+ } | |
} | |
filesaver.readyState = filesaver.DONE; | |
dispatch_all(); | |
+ revoke(object_url); | |
} | |
- , 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(); | |
+ object_url = get_URL().createObjectURL(blob); | |
+ setTimeout(function() { | |
+ save_link.href = object_url; | |
+ save_link.download = name; | |
+ click(save_link); | |
+ dispatch_all(); | |
+ revoke(object_url); | |
+ filesaver.readyState = filesaver.DONE; | |
+ }); | |
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_error(); | |
} | |
, FS_proto = FileSaver.prototype | |
- , saveAs = function(blob, name) { | |
- return new FileSaver(blob, name); | |
+ , saveAs = function(blob, name, no_auto_bom) { | |
+ return new FileSaver(blob, name || blob.name || "download", no_auto_bom); | |
} | |
; | |
- FS_proto.abort = function() { | |
- var filesaver = this; | |
- filesaver.readyState = filesaver.DONE; | |
- dispatch(filesaver, "abort"); | |
- }; | |
+ // IE 10+ (native saveAs) | |
+ if (typeof navigator !== "undefined" && navigator.msSaveOrOpenBlob) { | |
+ return function(blob, name, no_auto_bom) { | |
+ name = name || blob.name || "download"; | |
+ | |
+ if (!no_auto_bom) { | |
+ blob = auto_bom(blob); | |
+ } | |
+ return navigator.msSaveOrOpenBlob(blob, name); | |
+ }; | |
+ } | |
+ | |
+ FS_proto.abort = function(){}; | |
FS_proto.readyState = FS_proto.INIT = 0; | |
FS_proto.WRITING = 1; | |
FS_proto.DONE = 2; | |
@@ -217,11 +169,6 @@ | |
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 | |
@@ -232,10 +179,10 @@ | |
// 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() { | |
+if (typeof module !== "undefined" && module.exports) { | |
+ module.exports.saveAs = saveAs; | |
+} else if ((typeof define !== "undefined" && define !== null) && (define.amd !== null)) { | |
+ define("FileSaver.js", function() { | |
return saveAs; | |
}); | |
} | |
diff -ru /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/themes/keycloak/login/resources/css/login.css /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/keycloak/login/resources/css/login.css | |
--- /tmp/keycloak/jboss_keycloak-postgres-2.3.0.Final/jboss/keycloak/themes/keycloak/login/resources/css/login.css 2016-10-26 04:17:48.000000000 -0400 | |
+++ /tmp/keycloak/jboss_keycloak-postgres-2.4.0.Final/jboss/keycloak/themes/keycloak/login/resources/css/login.css 2016-11-23 15:37:56.000000000 -0500 | |
@@ -244,18 +244,26 @@ | |
.zocial.microsoft {background-color: #0052a4; color: #fff;} | |
.zocial.microsoft:before { content: "\f15d"; } | |
+@media (min-width: 1281px) { | |
+ #kc-container-wrapper { | |
+ bottom: 13%; | |
+ } | |
+ | |
+ #kc-logo-wrapper { | |
+ position: absolute; | |
+ top: 50px; | |
+ right: 50px; | |
+ } | |
+} | |
@media (min-width: 768px) { | |
#kc-container-wrapper { | |
- bottom: 13%; | |
position: absolute; | |
width: 100%; | |
} | |
#kc-logo-wrapper { | |
- position: absolute; | |
- top: 50px; | |
- right: 50px; | |
+ margin-left: auto; | |
} | |
.login-pf .container { |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment