keycloak-memoizeit
Changes
distribution/demo-dist/assembly.xml 54(+33 -21)
distribution/demo-dist/pom.xml 75(+75 -0)
forms/common-themes/src/main/resources/theme/base/admin/resources/templates/kc-tabs-realm.html 2(+1 -1)
forms/common-themes/src/main/resources/theme/keycloak/account/resources/css/account.css 298(+258 -40)
forms/common-themes/src/main/resources/theme/keycloak/account/resources/img/header-bkgrnd.png 0(+0 -0)
forms/common-themes/src/main/resources/theme/keycloak/account/resources/img/icon-sidebar-active.png 0(+0 -0)
forms/common-themes/src/main/resources/theme/keycloak/account/resources/img/keycloak-logo.png 0(+0 -0)
Details
distribution/demo-dist/assembly.xml 54(+33 -21)
diff --git a/distribution/demo-dist/assembly.xml b/distribution/demo-dist/assembly.xml
index 1b59337..b45f881 100755
--- a/distribution/demo-dist/assembly.xml
+++ b/distribution/demo-dist/assembly.xml
@@ -8,27 +8,39 @@
<includeBaseDirectory>true</includeBaseDirectory>
- <dependencySets>
- <dependencySet>
+ <fileSets>
+ <fileSet>
+ <directory>${project.build.directory}/unpacked/wildfly-${wildfly.version}</directory>
+ <outputDirectory>keycloak</outputDirectory>
+ <excludes>
+ <exclude>**/*.sh</exclude>
+ <exclude>standalone/configuration/standalone.xml</exclude>
+ <exclude>standalone/configuration/standalone-keycloak.xml</exclude>
+ </excludes>
+ </fileSet>
+ <fileSet>
+ <directory>${project.build.directory}/unpacked/wildfly-${wildfly.version}</directory>
+ <outputDirectory>keycloak</outputDirectory>
<includes>
- <include>org.keycloak:keycloak-server-dist:zip</include>
+ <include>**/*.sh</include>
</includes>
- <outputDirectory></outputDirectory>
- <unpack>true</unpack>
- </dependencySet>
- <dependencySet>
- <includes>
- <include>org.keycloak:keycloak-examples-dist:zip</include>
- </includes>
- <outputDirectory></outputDirectory>
- <unpack>true</unpack>
- </dependencySet>
- <dependencySet>
- <includes>
- <include>org.keycloak:keycloak-docs-dist:zip</include>
- </includes>
- <outputDirectory></outputDirectory>
- <unpack>true</unpack>
- </dependencySet>
- </dependencySets>
+ <fileMode>0755</fileMode>
+ </fileSet>
+ <fileSet>
+ <directory>${project.build.directory}/unpacked/keycloak-docs-${project.version}</directory>
+ <outputDirectory>docs</outputDirectory>
+ </fileSet>
+ <fileSet>
+ <directory>${project.build.directory}/unpacked/keycloak-examples-${project.version}</directory>
+ <outputDirectory>examples</outputDirectory>
+ </fileSet>
+ </fileSets>
+
+ <files>
+ <file>
+ <source>${project.build.directory}/unpacked/wildfly-${wildfly.version}/standalone/configuration/standalone-keycloak.xml</source>
+ <outputDirectory>keycloak/standalone/configuration</outputDirectory>
+ <destName>standalone.xml</destName>
+ </file>
+ </files>
</assembly>
distribution/demo-dist/pom.xml 75(+75 -0)
diff --git a/distribution/demo-dist/pom.xml b/distribution/demo-dist/pom.xml
index e77212c..73f1622 100755
--- a/distribution/demo-dist/pom.xml
+++ b/distribution/demo-dist/pom.xml
@@ -35,6 +35,81 @@
<finalName>keycloak-demo-${project.version}</finalName>
<plugins>
<plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>unpack-wildfly</id>
+ <phase>prepare-package</phase>
+ <goals>
+ <goal>unpack</goal>
+ </goals>
+ <configuration>
+ <artifactItems>
+ <artifactItem>
+ <groupId>org.wildfly</groupId>
+ <artifactId>wildfly-dist</artifactId>
+ <type>zip</type>
+ <outputDirectory>${project.build.directory}/unpacked</outputDirectory>
+ </artifactItem>
+ </artifactItems>
+ </configuration>
+ </execution>
+ <execution>
+ <id>unpack-server-overlay</id>
+ <phase>prepare-package</phase>
+ <goals>
+ <goal>unpack</goal>
+ </goals>
+ <configuration>
+ <artifactItems>
+ <artifactItem>
+ <groupId>org.keycloak</groupId>
+ <artifactId>keycloak-server-overlay</artifactId>
+ <type>zip</type>
+ <outputDirectory>${project.build.directory}/unpacked/wildfly-${wildfly.version}</outputDirectory>
+ </artifactItem>
+ </artifactItems>
+ </configuration>
+ </execution>
+ <execution>
+ <id>unpack-docs</id>
+ <phase>prepare-package</phase>
+ <goals>
+ <goal>unpack</goal>
+ </goals>
+ <configuration>
+ <artifactItems>
+ <artifactItem>
+ <groupId>org.keycloak</groupId>
+ <artifactId>keycloak-docs-dist</artifactId>
+ <type>zip</type>
+ <outputDirectory>${project.build.directory}/unpacked</outputDirectory>
+ </artifactItem>
+ </artifactItems>
+ </configuration>
+ </execution>
+ <execution>
+ <id>unpack-examples</id>
+ <phase>prepare-package</phase>
+ <goals>
+ <goal>unpack</goal>
+ </goals>
+ <configuration>
+ <artifactItems>
+ <artifactItem>
+ <groupId>org.keycloak</groupId>
+ <artifactId>keycloak-examples-dist</artifactId>
+ <type>zip</type>
+ <outputDirectory>${project.build.directory}/unpacked</outputDirectory>
+ </artifactItem>
+ </artifactItems>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
diff --git a/docbook/reference/en/en-US/modules/server-installation.xml b/docbook/reference/en/en-US/modules/server-installation.xml
index 0c419b7..6d6061a 100755
--- a/docbook/reference/en/en-US/modules/server-installation.xml
+++ b/docbook/reference/en/en-US/modules/server-installation.xml
@@ -1,95 +1,130 @@
<chapter id="server-installation">
<title>Installation and Configuration of Keycloak Server</title>
- <para>
- The Keycloak Server has two downloadable distributions.
- </para>
- <para>
- <itemizedlist>
-
- <listitem>
- keycloak-&project.version;.zip
- </listitem>
-
- <listitem>
- keycloak-overlay-&project.version;.zip
- </listitem>
-
- </itemizedlist>
-
- </para>
- <section id="server_install">
- <title>Server Install</title>
- <para>
- The
- <literal>keycloak-&project.version;.zip</literal>
- is quite large, but contains a complete server (backed by Wildfly)
- that runs out of the box. The only thing you'll have to enable and configure is SSL. Unzipping it, the
- directory layout looks
- something like this:
- </para>
-
- <para>
-<programlisting>
-keycloak-&project.version;/
- bin/
- standalone.sh
- standalone.bat
- standalone/configuration/
- keycloak-server.json
- themes/
- docs/
-</programlisting>
- </para>
- <para>
- The
- <literal>standalone.sh</literal>
- or
- <literal>standalone.bat</literal>
- script is used to start the server.
- After executing that, log into the admin console at<ulink
- url="http://localhost:8080/auth/admin/index.html">
- http://localhost:8080/auth/admin/index.html</ulink>.
- Username: <emphasis>admin</emphasis>
- Password: <emphasis>admin</emphasis>. Keycloak will then prompt you to
- enter in a new password.
- </para>
- </section>
- <section id="WAR_distribution_installation">
- <title>Server Overlay Installation</title>
- <para>
- The
- <literal>keycloak-overlay-&project.version;.zip</literal>
- contains
- just the bits you need to install keycloak on an existing WildFly 8.2.0.Final installation.
- </para>
- <para>
- The directory structure of this distro looks like this:
- </para>
- <para>
-<programlisting>
- standalone/
- configuration/
- keycloak-server.json
- themes/
- providers/
- modules
- docs/
-</programlisting>
- </para>
+ <section>
+ <title>Installation</title>
<para>
- Unzip this archive into the root of your WildFly installation.
+ Keycloak Server has three downloadable distributions.
</para>
<para>
- After booting up the Wildfly distro, you can then make sure it is installed properly
- by logging into the admin console at<ulink
- url="http://localhost:8080/auth/admin/index.html">
- http://localhost:8080/auth/admin/index.html</ulink>.
- Username: <emphasis>admin</emphasis>
- Password: <emphasis>admin</emphasis>. Keycloak will then prompt you to
- enter in a new password.
+ <itemizedlist>
+ <listitem>
+ <literal>keycloak-&project.version;.[zip|tar.gz]</literal> - Standalone server
+ </listitem>
+ <listitem>
+ <literal>keycloak-overlay-&project.version;.[zip|tar.gz]</literal> - Installer for WildFly or JBoss EAP
+ </listitem>
+ <listitem>
+ <literal>keycloak-demo-&project.version;.[zip|tar.gz]</literal> - Development bundle including WildFly, Keycloak, examples and documentation
+ </listitem>
+ </itemizedlist>
</para>
+ <section id="server_install">
+ <title>Install Standalone Server</title>
+ <para>
+ For production and for non-JavaEE developers we recommend using the standalone Keycloak server. All you need to
+ do is to download <literal>keycloak-&project.version;.zip</literal> or <literal>keycloak-&project.version;.tar.gz</literal>,
+ unpackage and start to have a Keycloak server up and running.
+ </para>
+
+ <para>
+ To install first download either the zip or tar.gz and extract. Then start by running either:
+ <programlisting>keycloak-&project.version;/bin/standalone.sh</programlisting>
+ or:
+ <programlisting>keycloak-&project.version;/bin/standalone.bat</programlisting>
+ </para>
+ <para>
+ Once the server is started log into the admin console at
+ <ulink url="http://localhost:8080/auth/admin/index.html">http://localhost:8080/auth/admin/index.html</ulink>
+ (username: <emphasis>admin</emphasis> and password: <emphasis>admin</emphasis>). Keycloak will then prompt you to
+ enter in a new password.
+ </para>
+ </section>
+
+
+ <section id="overlay_install">
+ <title>Install on existing WildFly 8.2.0.Final</title>
+ <para>
+ Keycloak can be installed into an existing WildFly 8.2.0.Final server. To do this download
+ <literal>keycloak-overlay-&project.version;.zip</literal> or <literal>keycloak-overlay-&project.version;.tar.gz</literal>.
+ Once downloaded extract into the root directory of your WildFly installation. To start WildFly with Keycloak
+ run:
+ <programlisting>keycloak-&project.version;/bin/standalone.sh --server-config=standalone-keycloak.xml</programlisting>
+ or:
+ <programlisting>keycloak-&project.version;/bin/standalone.bat --server-config=standalone-keycloak.xml</programlisting>
+ </para>
+ <para>
+ Once the server is started log into the admin console at
+ <ulink url="http://localhost:8080/auth/admin/index.html">http://localhost:8080/auth/admin/index.html</ulink>
+ (username: <emphasis>admin</emphasis> and password: <emphasis>admin</emphasis>). Keycloak will then prompt you to
+ enter in a new password.
+ </para>
+ <para>
+ To add Keycloak to other sever configurations (standalone.xml, standalone-ha.xml, etc.) open
+ <literal>standalone/configuration/standalone-keycloak.xml</literal> and the configuration you want to add it
+ to, for example <literal>standalone/configuration/standalone.xml</literal>. From <literal>standalone-keycloak.xml</literal>
+ you need to copy 3 elements:
+ <itemizedlist>
+ <listitem><literal><extension module="org.keycloak.keycloak-subsystem"/></literal></listitem>
+ <listitem><literal><datasource jndi-name="java:jboss/datasources/KeycloakDS" ...></literal></listitem>
+ <listitem><literal><subsystem xmlns="urn:jboss:domain:security:1.2" ...></literal></listitem>
+ </itemizedlist>
+ </para>
+ </section>
+ <section>
+ <title>Install on existing EAP 6.4.0.GA</title>
+ <para>
+ Keycloak can be installed into an existing EAP 6.4.0.GA server. To do this download
+ <literal>keycloak-overlay-&project.version;.zip</literal> or <literal>keycloak-overlay-&project.version;.tar.gz</literal>.
+ Once downloaded extract into the root directory of your EAP installation.
+ </para>
+ <para>
+ To add Keycloak to the a EAP sever configurations (standalone.xml, standalone-ha.xml, etc.) open
+ <literal>standalone/configuration/standalone-keycloak.xml</literal> and the configuration you want to add it
+ to, for example <literal>standalone/configuration/standalone.xml</literal>. From <literal>standalone-keycloak.xml</literal>
+ you need to copy 3 elements:
+ <itemizedlist>
+ <listitem><literal><extension module="org.keycloak.keycloak-subsystem"/></literal></listitem>
+ <listitem><literal><datasource jndi-name="java:jboss/datasources/KeycloakDS" ...></literal></listitem>
+ <listitem><literal><subsystem xmlns="urn:jboss:domain:security:1.2" ...></literal></listitem>
+ </itemizedlist>
+ <note>
+ <literal>standalone-keycloak.xml</literal> is aimed at WildFly and won't work with EAP so you need to
+ copy the required configuration
+ </note>
+ </para>
+ <para>
+ Once the server is started log into the admin console at
+ <ulink url="http://localhost:8080/auth/admin/index.html">http://localhost:8080/auth/admin/index.html</ulink>
+ (username: <emphasis>admin</emphasis> and password: <emphasis>admin</emphasis>). Keycloak will then prompt you to
+ enter in a new password.
+ </para>
+ </section>
+ <section>
+ <title id="demo_install">Install Development Bundle</title>
+ <para>
+ The demo bundle contains everything you need to get started with Keycloak including documentation and examples.
+ To install it first download <literal>keycloak-demo-&project.version;.zip</literal> or
+ <literal>keycloak-demo-&project.version;.tar.gz</literal>. Once downloaded extract it inside
+ <literal>keycloak-demo-&project.version;</literal> you'll find <literal>keycloak</literal> which contains
+ a full WildFly 8.2.0.Final server with Keycloak Server and Adapters included. You'll also find <literal>docs</literal>
+ and <literal>examples</literal> which contains everything you need to get started developing applications that use Keycloak.
+ </para>
+ <para>
+ To start WildFly with Keycloak run:
+ <programlisting>keycloak-&project.version;/bin/standalone.sh</programlisting>
+ or:
+ <programlisting>keycloak-&project.version;/bin/standalone.bat</programlisting>
+ </para>
+ <para>
+ Once the server is started log into the admin console at
+ <ulink url="http://localhost:8080/auth/admin/index.html">http://localhost:8080/auth/admin/index.html</ulink>
+ (username: <emphasis>admin</emphasis> and password: <emphasis>admin</emphasis>). Keycloak will then prompt you to
+ enter in a new password.
+ </para>
+ </section>
</section>
+
<section>
<title id="configure-server">Configuring the Server</title>
<para>
diff --git a/forms/common-themes/src/main/resources/META-INF/keycloak-themes.json b/forms/common-themes/src/main/resources/META-INF/keycloak-themes.json
index 17ebb97..56322d3 100755
--- a/forms/common-themes/src/main/resources/META-INF/keycloak-themes.json
+++ b/forms/common-themes/src/main/resources/META-INF/keycloak-themes.json
@@ -5,9 +5,5 @@
}, {
"name" : "keycloak",
"types": [ "admin", "account", "login", "common", "email", "welcome" ]
- },
- {
- "name" : "patternfly",
- "types": [ "account"]
}]
}
\ No newline at end of file
diff --git a/forms/common-themes/src/main/resources/theme/base/admin/resources/templates/kc-tabs-realm.html b/forms/common-themes/src/main/resources/theme/base/admin/resources/templates/kc-tabs-realm.html
index adde837..78be9a3 100644
--- a/forms/common-themes/src/main/resources/theme/base/admin/resources/templates/kc-tabs-realm.html
+++ b/forms/common-themes/src/main/resources/theme/base/admin/resources/templates/kc-tabs-realm.html
@@ -5,7 +5,7 @@
<li ng-class="{active: path[2] == 'keys-settings'}" data-ng-show="access.viewRealm"><a href="#/realms/{{realm.realm}}/keys-settings">Keys</a></li>
<li ng-class="{active: path[2] == 'smtp-settings'}" data-ng-show="access.viewRealm"><a href="#/realms/{{realm.realm}}/smtp-settings">Email</a></li>
<li ng-class="{active: path[2] == 'theme-settings'}" data-ng-show="access.viewRealm"><a href="#/realms/{{realm.realm}}/theme-settings">Themes</a></li>
- <li ng-class="{active: path[2] == 'cache-settings'}" data-ng-show="access.viewRealm"><a href="#/realms/{{realm.realm}}/cache-settings">Cache Config</a></li>
+ <li ng-class="{active: path[2] == 'cache-settings'}" data-ng-show="access.viewRealm"><a href="#/realms/{{realm.realm}}/cache-settings">Cache</a></li>
<li ng-class="{active: path[2] == 'token-settings'}" data-ng-show="access.viewRealm"><a href="#/realms/{{realm.realm}}/token-settings">Tokens</a></li>
<li ng-class="{active: path[2] == 'defense'}" data-ng-show="access.viewRealm"><a href="#/realms/{{realm.realm}}/defense/headers">Security Defenses</a></li>
</ul>
\ No newline at end of file
diff --git a/forms/common-themes/src/main/resources/theme/keycloak/account/resources/css/account.css b/forms/common-themes/src/main/resources/theme/keycloak/account/resources/css/account.css
index 40f7689..a18d0f2 100644
--- a/forms/common-themes/src/main/resources/theme/keycloak/account/resources/css/account.css
+++ b/forms/common-themes/src/main/resources/theme/keycloak/account/resources/css/account.css
@@ -1,56 +1,274 @@
-.navbar-pf {
- background-image: url('../img/header-bkgrnd.png');
- border-top: 3px solid rgba(255, 255, 255, 0.15);
+html {
+ height: 100%;
}
-.navbar-pf .navbar-primary {
- font-size: 13px;
- background-image: -webkit-linear-gradient(top, rgba(0, 0, 0, 0.1) 0%, rgba(0, 0, 0, .4) 100%);
- background-image: linear-gradient(to bottom, rgba(0, 0, 0, .1) 0%, rgba(0, 0, 0, .4) 100%);
+body {
+ background-color: #F9F9F9;
+ margin: 0;
+ padding: 0;
+ height: 100%;
}
-.navbar-pf .navbar-header {
- border-bottom: 1px solid rgba(255, 255, 255, .15);
+header .navbar {
+ margin-bottom: 0;
+ min-height: inherit;
}
-.navbar-pf .navbar-primary li.dropdown.context > a,
-.navbar-pf .navbar-primary li.dropdown.context > a:hover,
-.navbar-pf .navbar-primary li.dropdown.context.open > a,
-.navbar-pf .navbar-primary > .active > a,
-.navbar-pf .navbar-primary > .active > a:hover {
- background-color: rgba(0, 0, 0, 0.1);
- border-bottom-color: rgba(0, 0, 0, 0.3);
- border-right: rgba(0, 0, 0, 0.3);
- border-top-color: rgba(0, 0, 0, 0.1);
- font-weight: 600;
- background-image: -webkit-linear-gradient(top, rgba(0, 0, 0, 0.1) 0%, rgba(0, 0, 0, 0.1) 100%);
- background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.1) 0%, rgba(0, 0, 0, 0.1) 100%);
- background-repeat: repeat-x;
+.header .container {
+ position: relative;
}
-.navbar-pf .navbar-primary li.dropdown.context > a:hover,
-.navbar-pf .navbar-primary li.dropdown.context.open > a,
-.navbar-pf .navbar-primary > .active > a:hover {
- background-color: rgba(0, 0, 0, 0.3);
+.navbar-title {
+ background-image: url('../img/logo.png');
+ height: 25px;
+ background-repeat: no-repeat;
+ width: 103px;
+ margin: 3px 10px 5px;
+ text-indent: -99999px;
}
-.navbar-pf .navbar-primary > .active > a {
- background-color: rgba(0, 0, 0, 0.1);
- border-bottom-color: rgba(0, 0, 0, 0.3);
- border-right: rgba(0, 0, 0, 0.3);
- border-top-color: rgba(0, 0, 0, 0.1);
- font-weight: 600;
- background-image: -webkit-linear-gradient(top, rgba(0, 0, 0, 0.1) 0%, rgba(0, 0, 0, 0.1) 100%);
- background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.1) 0%, rgba(0, 0, 0, 0.1) 100%);
- background-repeat: repeat-x;
+.navbar-pf .navbar-utility {
+ right: 20px;
+ top: -34px;
+ font-size: 12px;
}
.navbar-pf .navbar-utility > li > a {
- border-left: none;
+ color: #fff !important;
+ padding-bottom: 12px;
+ padding-top: 11px;
+ border-left: medium none;
+}
+
+.container {
+ height: 100%;
+}
+
+.content-area {
+ background-color: #fff;
+ border-color: #CECECE;
+ border-style: solid;
+ border-width: 0 1px;
+ height: 100%;
+ padding: 0 30px;
+}
+
+/* Sidebar */
+
+.bs-sidebar {
+ background-color: #f9f9f9;
+ padding-top: 44px;
+ padding-right: 0;
+ padding-left: 0;
+ z-index: 20;
+}
+.bs-sidebar ul {
+ list-style: none;
+ padding-left: 12px;
+}
+
+.bs-sidebar ul li {
+ margin-bottom: 0.5em;
+ margin-left: -1em;
+}
+.bs-sidebar ul li a {
+ font-size: 14px;
+ padding-left: 25px;
+ color: #4d5258;
+ line-height: 28px;
+ display: block;
+ border-width: 1px 0 1px 1px;
+ border-style: solid;
+ border-color: #f9f9f9;
+}
+.bs-sidebar ul li a:hover,
+.bs-sidebar ul li a:focus {
+ text-decoration: none;
+ color: #777777;
+ border-right: 2px solid #aaa;
+}
+.bs-sidebar ul li.active a {
+ background-color: #c7e5f0;
+ border-color: #56bae0;
+ font-weight: bold;
+ background-image: url(../img/icon-sidebar-active.png);
+ background-repeat: no-repeat;
+ background-position: right center;
+}
+
+.bs-sidebar ul li.active a:hover {
+ border-right: none;
+}
+
+
+.content-area h2 {
+ font-family: "Open Sans", sans-serif;
+ font-weight: 100;
+ font-size: 24px;
+ margin-bottom: 25px;
+ margin-top: 25px;
+}
+
+.subtitle {
+ text-align: right;
+ margin-top: 30px;
+ color: #909090;
+}
+
+.required {
+ color: #CB2915;
+}
+
+
+.alert {
+ margin-top: 30px;
+ margin-bottom: 0;
+}
+
+.feedback-aligner .alert {
+ background-position: 1.27273em center;
+ background-repeat: no-repeat;
+ border-radius: 2px;
+ border-width: 1px;
+ color: #4D5258;
+ display: inline-block;
+ font-size: 1.1em;
+ line-height: 1.4em;
+ margin: 0;
+ padding: 0.909091em 3.63636em;
+ position: relative;
+ text-align: left;
+}
+.alert.alert-success {
+ background-color: #E4F1E1;
+ border-color: #4B9E39;
+}
+.alert.alert-error {
+ background-color: #F8E7E7;
+ border-color: #B91415;
+}
+.alert.alert-warning {
+ background-color: #FEF1E9;
+ border-color: #F17528;
+}
+.alert.alert-info {
+ background-color: #E4F3FA;
+ border-color: #5994B2;
}
-.navbar-pf .navbar-utility > li > a:hover,
-.navbar-pf .navbar-utility > .open > a,
-.navbar-pf .navbar-utility > .open > a:hover {
- background-color: rgba(0, 0, 0, 0.2);
+.form-horizontal {
+ border-top: 1px solid #E9E8E8;
+ padding-top: 23px;
+}
+
+.form-horizontal .control-label {
+ color: #909090;
+ line-height: 1.4em;
+ padding-top: 5px;
+ position: relative;
+ text-align: right;
+ width: 100%;
+}
+
+.form-group {
+ position: relative;
+}
+
+.control-label + .required {
+ position: absolute;
+ right: -2px;
+ top: 0;
+}
+
+#kc-form-buttons {
+ text-align: right;
+ margin-top: 10px;
+}
+
+#kc-form-buttons .btn-primary {
+ float: right;
+ margin-left: 8px;
+}
+
+/* Authenticator page */
+
+ol {
+ padding-left: 40px;
+}
+
+ol li {
+ font-size: 13px;
+ margin-bottom: 10px;
+ position: relative;
+}
+
+ol li img {
+ margin-top: 15px;
+ width: 180px;
+ margin-bottom: 5px;
+ border: 1px solid #eee;
+}
+
+ol li span {
+ bottom: 80px;
+ left: 200px;
+ position: absolute;
+ font-family: courier, monospace;
+ font-size: 13px;
+}
+
+hr + .form-horizontal {
+ border: none;
+ padding-top: 0;
+}
+
+.kc-dropdown{
+ position: relative;
+}
+.kc-dropdown > a{
+ display:block;
+ padding: 11px 10px 12px;
+ line-height: 12px;
+ font-size: 12px;
+ color: #fff !important;
+ text-decoration: none;
+}
+.kc-dropdown > a::after{
+ content: "\2c5";
+ margin-left: 4px;
+}
+.kc-dropdown:hover > a{
+ background-color: rgba(0,0,0,0.2);
+}
+.kc-dropdown ul li a{
+ padding: 1px 11px;
+ font-size: 12px;
+ color: #000 !important;
+ border: 1px solid #fff;
+ text-decoration: none;
+ display:block;
+ line-height: 20px;
+}
+.kc-dropdown ul li a:hover{
+ color: #4d5258;
+ background-color: #d4edfa;
+ border-color: #b3d3e7;
+}
+.kc-dropdown ul{
+ position: absolute;
+ z-index: 2000;
+ list-style:none;
+ display:none;
+ padding: 5px 0px;
+ margin: 0px;
+ background-color: #fff !important;
+ border: 1px solid #b6b6b6;
+ border-radius: 1px;
+ -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
+ box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
+ background-clip: padding-box;
+ min-width: 100px;
+}
+.kc-dropdown:hover ul{
+ display:block;
}
\ No newline at end of file
diff --git a/forms/common-themes/src/main/resources/theme/keycloak/account/theme.properties b/forms/common-themes/src/main/resources/theme/keycloak/account/theme.properties
old mode 100755
new mode 100644
index 81310f2..971b6c0
--- a/forms/common-themes/src/main/resources/theme/keycloak/account/theme.properties
+++ b/forms/common-themes/src/main/resources/theme/keycloak/account/theme.properties
@@ -1,4 +1,4 @@
-parent=patternfly
-import=common/keycloak
-
-styles= ../patternfly/lib/patternfly/css/patternfly.css ../patternfly/css/account.css css/account.css
\ No newline at end of file
+parent=base
+import=common/keycloak
+
+styles=lib/patternfly/css/patternfly.css css/account.css
\ No newline at end of file
diff --git a/forms/common-themes/src/main/resources/theme/keycloak/login/resources/css/login.css b/forms/common-themes/src/main/resources/theme/keycloak/login/resources/css/login.css
index 1606825..18d97e0 100644
--- a/forms/common-themes/src/main/resources/theme/keycloak/login/resources/css/login.css
+++ b/forms/common-themes/src/main/resources/theme/keycloak/login/resources/css/login.css
@@ -81,6 +81,7 @@
}
#kc-header {
+ color: #fff;
overflow: visible;
padding-left: 80px;
white-space: nowrap;