commit
01c1eed510
10 changed files with 189 additions and 15 deletions
|
@ -36,7 +36,7 @@
|
|||
<outputDirectory>keycloak/standalone/deployments</outputDirectory>
|
||||
</fileSet>
|
||||
<fileSet>
|
||||
<directory>${project.build.directory}/unpacked/examples/themes</directory>
|
||||
<directory>${project.build.directory}/unpacked/themes</directory>
|
||||
<outputDirectory>keycloak/standalone/configuration/themes</outputDirectory>
|
||||
</fileSet>
|
||||
<fileSet>
|
||||
|
|
|
@ -68,6 +68,13 @@
|
|||
<type>zip</type>
|
||||
<outputDirectory>${project.build.directory}/unpacked</outputDirectory>
|
||||
</artifactItem>
|
||||
<artifactItem>
|
||||
<groupId>org.keycloak</groupId>
|
||||
<artifactId>keycloak-example-themes-dist</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<type>zip</type>
|
||||
<outputDirectory>${project.build.directory}/unpacked</outputDirectory>
|
||||
</artifactItem>
|
||||
<artifactItem>
|
||||
<groupId>org.keycloak</groupId>
|
||||
<artifactId>keycloak-wildfly-adapter-dist</artifactId>
|
||||
|
|
|
@ -25,8 +25,5 @@
|
|||
<move file="target/examples/unconfigured-demo/customer-app/src/main/webapp/WEB-INF/web.xml.unconfigured" tofile="target/examples/unconfigured-demo/customer-app/src/main/webapp/WEB-INF/web.xml"/>
|
||||
<move file="target/examples/unconfigured-demo/product-app/src/main/webapp/WEB-INF/web.xml.unconfigured" tofile="target/examples/unconfigured-demo/product-app/src/main/webapp/WEB-INF/web.xml"/>
|
||||
<move file="target/examples/unconfigured-demo/database-service/src/main/webapp/WEB-INF/web.xml.unconfigured" tofile="target/examples/unconfigured-demo/database-service/src/main/webapp/WEB-INF/web.xml"/>
|
||||
<copy todir="target/examples/themes" overwrite="true">
|
||||
<fileset dir="../../examples/themes"/>
|
||||
</copy>
|
||||
</target>
|
||||
</project>
|
|
@ -31,6 +31,7 @@
|
|||
<module>eap6-adapter-zip</module>
|
||||
<module>wildfly-adapter-zip</module>
|
||||
<module>examples-docs-zip</module>
|
||||
<module>theme-template-zip</module>
|
||||
<module>war-zip</module>
|
||||
<module>war-dist</module>
|
||||
<module>appliance-dist</module>
|
||||
|
|
20
distribution/theme-template-zip/assembly.xml
Executable file
20
distribution/theme-template-zip/assembly.xml
Executable file
|
@ -0,0 +1,20 @@
|
|||
<assembly>
|
||||
<id>war-dist</id>
|
||||
|
||||
<formats>
|
||||
<format>zip</format>
|
||||
</formats>
|
||||
<includeBaseDirectory>false</includeBaseDirectory>
|
||||
|
||||
<fileSets>
|
||||
<fileSet>
|
||||
<directory>target/themes</directory>
|
||||
<outputDirectory>themes</outputDirectory>
|
||||
<excludes>
|
||||
<exclude>**/.svn/**</exclude>
|
||||
<exclude>**/target/**</exclude>
|
||||
<exclude>**/*.iml</exclude>
|
||||
</excludes>
|
||||
</fileSet>
|
||||
</fileSets>
|
||||
</assembly>
|
39
distribution/theme-template-zip/build.xml
Executable file
39
distribution/theme-template-zip/build.xml
Executable file
|
@ -0,0 +1,39 @@
|
|||
<project name="example-dist" basedir="." default="all">
|
||||
|
||||
<target name="all">
|
||||
<delete dir="target/themes"/>
|
||||
<copy todir="target/themes/login/template" overwrite="true">
|
||||
<fileset dir="../../forms/common-themes/src/main/resources/theme/login/base">
|
||||
</fileset>
|
||||
</copy>
|
||||
<copy todir="target/themes/login/template" overwrite="true">
|
||||
<fileset dir="../../forms/common-themes/src/main/resources/theme/login/patternfly">
|
||||
</fileset>
|
||||
</copy>
|
||||
<copy tofile="target/themes/login/template/theme.properties" file="../../forms/common-themes/src/main/resources/theme/login/patternfly/theme.properties" overwrite="true">
|
||||
<filterchain>
|
||||
<linecontains negate="true">
|
||||
<contains value="parent"/>
|
||||
</linecontains>
|
||||
</filterchain>
|
||||
</copy>
|
||||
<copy todir="target/themes/account/template" overwrite="true">
|
||||
<fileset dir="../../forms/common-themes/src/main/resources/theme/account/base">
|
||||
</fileset>
|
||||
</copy>
|
||||
<copy todir="target/themes/account/template" overwrite="true">
|
||||
<fileset dir="../../forms/common-themes/src/main/resources/theme/account/patternfly">
|
||||
</fileset>
|
||||
</copy>
|
||||
<copy tofile="target/themes/account/template/theme.properties" file="../../forms/common-themes/src/main/resources/theme/account/patternfly/theme.properties" overwrite="true">
|
||||
<filterchain>
|
||||
<linecontains negate="true">
|
||||
<contains value="parent"/>
|
||||
</linecontains>
|
||||
</filterchain>
|
||||
</copy>
|
||||
<copy todir="target/themes" overwrite="true">
|
||||
<fileset dir="../../examples/themes"/>
|
||||
</copy>
|
||||
</target>
|
||||
</project>
|
84
distribution/theme-template-zip/pom.xml
Executable file
84
distribution/theme-template-zip/pom.xml
Executable file
|
@ -0,0 +1,84 @@
|
|||
<project>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<artifactId>keycloak-parent</artifactId>
|
||||
<groupId>org.keycloak</groupId>
|
||||
<version>1.0-alpha-2-SNAPSHOT</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<artifactId>keycloak-example-themes-dist</artifactId>
|
||||
<packaging>pom</packaging>
|
||||
<name>Keycloak Example Themes</name>
|
||||
<description/>
|
||||
|
||||
<dependencies>
|
||||
</dependencies>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-antrun-plugin</artifactId>
|
||||
<version>1.7</version>
|
||||
<inherited>false</inherited>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>build-example</id>
|
||||
<goals>
|
||||
<goal>run</goal>
|
||||
</goals>
|
||||
<phase>compile</phase>
|
||||
<configuration>
|
||||
<target>
|
||||
<ant antfile="build.xml" inheritRefs="true">
|
||||
<target name="all"/>
|
||||
</ant>
|
||||
</target>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>ant-contrib</groupId>
|
||||
<artifactId>ant-contrib</artifactId>
|
||||
<version>1.0b3</version>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>ant</groupId>
|
||||
<artifactId>ant</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-assembly-plugin</artifactId>
|
||||
<version>2.4</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>assemble</id>
|
||||
<phase>package</phase>
|
||||
<goals>
|
||||
<goal>single</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<descriptors>
|
||||
<descriptor>assembly.xml</descriptor>
|
||||
</descriptors>
|
||||
<outputDirectory>
|
||||
target
|
||||
</outputDirectory>
|
||||
<workDirectory>
|
||||
target/assembly/work
|
||||
</workDirectory>
|
||||
<appendAssemblyId>false</appendAssemblyId>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
</project>
|
|
@ -23,6 +23,14 @@
|
|||
</includes>
|
||||
<outputDirectory>adapters</outputDirectory>
|
||||
</dependencySet>
|
||||
<dependencySet>
|
||||
<unpack>false</unpack>
|
||||
<useTransitiveDependencies>false</useTransitiveDependencies>
|
||||
<includes>
|
||||
<include>org.keycloak:keycloak-example-themes-dist:zip</include>
|
||||
</includes>
|
||||
<outputDirectory>examples</outputDirectory>
|
||||
</dependencySet>
|
||||
</dependencySets>
|
||||
<!--
|
||||
<moduleSets>
|
||||
|
|
|
@ -31,6 +31,12 @@
|
|||
<version>${project.version}</version>
|
||||
<type>zip</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.keycloak</groupId>
|
||||
<artifactId>keycloak-example-themes-dist</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<type>zip</type>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<build>
|
||||
<plugins>
|
||||
|
|
34
docbook/reference/en/en-US/modules/themes.xml
Normal file → Executable file
34
docbook/reference/en/en-US/modules/themes.xml
Normal file → Executable file
|
@ -19,10 +19,10 @@
|
|||
<section>
|
||||
<title>Creating a theme</title>
|
||||
<para>
|
||||
There are two types of themes in Keycloak, login and account. Login themes are used to customize the
|
||||
There are two types of themes in Keycloak, <literal>login</literal> and <literal>account</literal>. Login themes are used to customize the
|
||||
login forms, while account themes are used to customize account management. A theme consists of:
|
||||
<itemizedlist>
|
||||
<listitem><para>FreeMarker templates</para></listitem>
|
||||
<listitem><para><ulink url="http://freemarker.org">FreeMarker</ulink> templates</para></listitem>
|
||||
<listitem><para>Stylesheets</para></listitem>
|
||||
<listitem><para>Scripts</para></listitem>
|
||||
<listitem><para>Images</para></listitem>
|
||||
|
@ -97,23 +97,35 @@
|
|||
<programlisting>username=Your Username</programlisting>
|
||||
</section>
|
||||
<section>
|
||||
<title>Templates</title>
|
||||
<title>Modifying HTML</title>
|
||||
<para>
|
||||
For advanced use-cases where you need to modify the html structure it is also possible to override
|
||||
one or more of the templates. For example to override the login page create <literal>login.ftl</literal>
|
||||
inside your theme folder. The base templates all use <literal>template.ftl</literal> to create the
|
||||
basic structure of the page.
|
||||
Keycloak uses <ulink url="http://freemarker.org">Freemarker Templates</ulink> in order to generate HTML.
|
||||
These templates are defined in <literal>.ftl</literal> files and can be overriden from the base theme.
|
||||
Check out the Freemarker website on how to form a template file.
|
||||
</para>
|
||||
</section>
|
||||
<section>
|
||||
<title>Full Example Templates</title>
|
||||
<para>
|
||||
Keycloak comes bundled with some default themes which you cannot view or modify. The distribution
|
||||
also contains full example templates which you can edit directly if you're running the Keycloak appliance
|
||||
distro, or which you can install, if you're using the WAR distro. The name of these full example themes
|
||||
is <literal>template</literal> and they contain a complex example for generating all pages related
|
||||
to login, error displaying, oauth grant pages, and user account management.
|
||||
</para>
|
||||
<para>
|
||||
The base templates are a good reference if you need to create your own templates, they can be
|
||||
found inside <literal>forms/common-themes/src/main/resources/theme</literal> on GitHub or in the source
|
||||
download.
|
||||
For the Keycloak Appliance Distro, these theme files are in the directories
|
||||
<literal>${appliance-distro}/keycloak/standalone/configuration/themes/login/template</literal>
|
||||
and <literal>${appliance-distro}/keycloak/standalone/configuration/themes/account/template</literal>.
|
||||
For the WAR distro, there is a zip file in the examples directory called <literal>keycloak-example-themes-dist.zip</literal>
|
||||
which you will need to unzip in the <literal>standalone/configuration</literal> or <literal>domain/configuration</literal>
|
||||
directory if the JBoss or Wildfly instance you have deployed Keycloak server to.
|
||||
</para>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>SPI</title>
|
||||
<title>SPIs</title>
|
||||
<para>
|
||||
For full control of login forms and account management Keycloak provides a number of SPIs.
|
||||
</para>
|
||||
|
|
Loading…
Reference in a new issue