You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by mm...@apache.org on 2020/03/16 15:56:10 UTC

[syncope] 24/36: [SYNCOPE-1545] Basic white-labeling

This is an automated email from the ASF dual-hosted git repository.

mmoayyed pushed a commit to branch SYNCOPE-1545
in repository https://gitbox.apache.org/repos/asf/syncope.git

commit abfd62a6210bac17e819d5d01e51a8e303dc313a
Author: Francesco Chicchiriccò <il...@apache.org>
AuthorDate: Tue Mar 3 15:32:33 2020 +0100

    [SYNCOPE-1545] Basic white-labeling
---
 .../syncope/client/console/pages/BasePage.html     |   6 +-
 pom.xml                                            | 212 +++++++++++---------
 wa/pom.xml                                         |  13 ++
 wa/src/main/resources/static/images/logo.png       | Bin 0 -> 8913 bytes
 .../main/resources/templates/fragments/footer.html |  30 +++
 .../main/resources/templates/fragments/header.html | 217 +++++++++++++++++++++
 6 files changed, 380 insertions(+), 98 deletions(-)

diff --git a/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/pages/BasePage.html b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/pages/BasePage.html
index e18f828..7bf0e0a 100644
--- a/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/pages/BasePage.html
+++ b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/pages/BasePage.html
@@ -159,7 +159,7 @@ under the License.
       </div>
 
       <footer class="main-footer">
-        <strong>Copyright &copy; 2010&#45;<span id="spanYear"></span> 
+        <strong>Copyright &copy; 2010&#45;${year}
           <a href="http://www.apache.org/" target="_blank" rel="noopener noreferrer">The Apache Software Foundation</a>.</strong>
         All rights reserved.
       </footer>
@@ -271,9 +271,5 @@ under the License.
     </div>
 
     <div id="veil">Loading...</div>
-
-    <script type="text/javascript">
-      $('#spanYear').html(new Date().getFullYear());
-    </script>
   </body>
 </html>
diff --git a/pom.xml b/pom.xml
index 2f12460..d13c03e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -153,7 +153,7 @@ under the License.
         <role>PMC member</role>
       </roles>
       <url>http://people.apache.org/~massi/</url>
-    </developer>    
+    </developer>
     <developer>
       <id>rene</id>
       <name>René Mulder</name>
@@ -409,9 +409,9 @@ under the License.
     <jackson.version>2.10.3</jackson.version>
 
     <spring.version>5.2.4.RELEASE</spring.version>
-    <spring-security.version>5.3.0.RELEASE</spring-security.version>
+    <spring-security.version>5.2.2.RELEASE</spring-security.version>
     <spring-boot.version>2.2.5.RELEASE</spring-boot.version>
-    <spring-cloud-gateway.version>2.2.2.RELEASE</spring-cloud-gateway.version>
+    <spring-cloud-gateway.version>2.2.1.RELEASE</spring-cloud-gateway.version>
 
     <openjpa.version>3.1.1</openjpa.version>
     <hikaricp.version>3.4.2</hikaricp.version>
@@ -423,7 +423,7 @@ under the License.
 
     <cocoon.version>3.0.0-alpha-3</cocoon.version>
 
-    <groovy.version>3.0.2</groovy.version>
+    <groovy.version>3.0.1</groovy.version>
 
     <flowable.version>6.5.0</flowable.version>
 
@@ -432,7 +432,7 @@ under the License.
     <slf4j.version>1.7.30</slf4j.version>
     <opensaml.version>3.3.1</opensaml.version>
 
-    <elasticsearch.version>7.6.1</elasticsearch.version>
+    <elasticsearch.version>7.6.0</elasticsearch.version>
 
     <apacheds.version>2.0.0.AM25</apacheds.version>
     <apachedirapi.version>2.0.0.AM2</apachedirapi.version>
@@ -444,7 +444,7 @@ under the License.
     <commons-lang.version>3.9</commons-lang.version>
     <commons-text.version>1.8</commons-text.version>
     <commons-logging.version>1.1.3</commons-logging.version>
-    
+    <batik.version>1.10</batik.version>
     <tika.version>1.23</tika.version>
 
     <joda.version>2.10.5</joda.version>
@@ -454,9 +454,9 @@ under the License.
     <h2.version>1.4.200</h2.version>
 
     <junit.version>5.6.0</junit.version>
-    <mockito.version>3.3.3</mockito.version>
+    <mockito.version>3.3.0</mockito.version>
 
-    <swagger-core.version>2.1.1</swagger-core.version>    
+    <swagger-core.version>2.1.1</swagger-core.version>
     <swagger-ui.version>3.25.0</swagger-ui.version>
     <guava.version>20.0</guava.version>
 
@@ -464,7 +464,7 @@ under the License.
     <jquery-ui.version>1.12.1</jquery-ui.version>
     <jquery-slimscroll.version>1.3.8</jquery-slimscroll.version>
     <jquery-cookie.version>1.4.1-1</jquery-cookie.version>
-    
+
     <bootstrap.version>3.4.1</bootstrap.version>
     <bootstrap-select.version>1.12.4</bootstrap-select.version>
     <bootstrap-fileinput.version>4.4.8</bootstrap-fileinput.version>
@@ -477,12 +477,12 @@ under the License.
     <googlediffmatchpath.version>895a9512bb</googlediffmatchpath.version>
     <jsplumb.version>2.0.7</jsplumb.version>
     <chartjs.version>1.0.2</chartjs.version>
-    
+
     <wicket.version>8.7.0</wicket.version>
     <wicket-jqueryui.version>8.6.0</wicket-jqueryui.version>
     <wicket-bootstrap.version>2.0.12</wicket-bootstrap.version>
     <wicket-spring-boot.version>2.1.9</wicket-spring-boot.version>
-    
+
     <ianal-maven-plugin-version>1.0-alpha-1</ianal-maven-plugin-version>
 
     <netbeans.version>RELEASE112</netbeans.version>
@@ -592,9 +592,9 @@ under the License.
         <artifactId>geronimo-javamail_1.4_mail</artifactId>
         <version>1.8.4</version>
       </dependency>
-      <dependency> 
-        <groupId>javax.servlet</groupId> 
-        <artifactId>javax.servlet-api</artifactId> 
+      <dependency>
+        <groupId>javax.servlet</groupId>
+        <artifactId>javax.servlet-api</artifactId>
         <version>4.0.1</version>
         <scope>provided</scope>
       </dependency>
@@ -609,7 +609,7 @@ under the License.
         <artifactId>taglibs-standard-impl</artifactId>
         <version>1.2.5</version>
       </dependency>
-      
+
       <!-- CXF -->
       <dependency>
         <groupId>org.apache.cxf</groupId>
@@ -673,7 +673,7 @@ under the License.
       </dependency>
       <!-- /CXF -->
 
-      <!-- Swagger -->      
+      <!-- Swagger -->
       <dependency>
         <groupId>io.swagger.core.v3</groupId>
         <artifactId>swagger-annotations</artifactId>
@@ -684,7 +684,7 @@ under the License.
             <artifactId>jackson-dataformat-yaml</artifactId>
           </exclusion>
         </exclusions>
-      </dependency>      
+      </dependency>
       <dependency>
         <groupId>io.swagger.core.v3</groupId>
         <artifactId>swagger-jaxrs2</artifactId>
@@ -695,13 +695,13 @@ under the License.
         <artifactId>swagger-ui</artifactId>
         <version>${swagger-ui.version}</version>
       </dependency>
-      
+
       <dependency>
         <groupId>com.google.guava</groupId>
         <artifactId>guava</artifactId>
         <version>${guava.version}</version>
       </dependency>
-      <!-- /Swagger -->      
+      <!-- /Swagger -->
 
       <!-- Camel -->
       <dependency>
@@ -919,7 +919,7 @@ under the License.
         <artifactId>javax.el</artifactId>
         <version>3.0.1-b09</version>
       </dependency>
-            
+
       <dependency>
         <groupId>com.fasterxml.jackson.core</groupId>
         <artifactId>jackson-core</artifactId>
@@ -990,7 +990,7 @@ under the License.
             <artifactId>joda-time</artifactId>
           </exclusion>
         </exclusions>
-      </dependency>    
+      </dependency>
 
       <dependency>
         <groupId>joda-time</groupId>
@@ -1017,6 +1017,22 @@ under the License.
       </dependency>
 
       <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-web</artifactId>
+        <version>${spring-boot.version}</version>
+        <exclusions>
+          <exclusion>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-logging</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-tomcat</artifactId>
+          </exclusion>
+        </exclusions>
+      </dependency>
+
+      <dependency>
         <groupId>org.apache.cxf</groupId>
         <artifactId>cxf-spring-boot-starter-jaxrs</artifactId>
         <version>${cxf.version}</version>
@@ -1158,13 +1174,13 @@ under the License.
         <artifactId>spring-security-config</artifactId>
         <version>${spring-security.version}</version>
       </dependency>
-    
+
       <dependency>
         <groupId>org.aspectj</groupId>
         <artifactId>aspectjweaver</artifactId>
         <version>1.9.5</version>
       </dependency>
-      
+
       <dependency>
         <groupId>org.apache.commons</groupId>
         <artifactId>commons-jexl3</artifactId>
@@ -1202,7 +1218,7 @@ under the License.
         <artifactId>slf4j-logging</artifactId>
         <version>${connid.version}</version>
       </dependency>
-      
+
       <dependency>
         <groupId>org.codehaus.groovy</groupId>
         <artifactId>groovy</artifactId>
@@ -1216,7 +1232,7 @@ under the License.
           <exclusion>
             <groupId>org.codehaus.groovy</groupId>
             <artifactId>groovy-xml</artifactId>
-          </exclusion>    
+          </exclusion>
         </exclusions>
       </dependency>
       <dependency>
@@ -1259,7 +1275,7 @@ under the License.
         <artifactId>groovy-groovysh</artifactId>
         <version>${groovy.version}</version>
       </dependency>
-    
+
       <dependency>
         <groupId>com.h2database</groupId>
         <artifactId>h2</artifactId>
@@ -1314,13 +1330,13 @@ under the License.
           </exclusion>
         </exclusions>
       </dependency>
-      
+
       <dependency>
         <groupId>org.jasypt</groupId>
         <artifactId>jasypt</artifactId>
         <version>${jasypt.version}</version>
       </dependency>
-      
+
       <dependency>
         <groupId>org.quartz-scheduler</groupId>
         <artifactId>quartz</artifactId>
@@ -1340,7 +1356,7 @@ under the License.
           </exclusion>
         </exclusions>
       </dependency>
-      
+
       <dependency>
         <groupId>org.apache.cocoon.sax</groupId>
         <artifactId>cocoon-sax</artifactId>
@@ -1361,17 +1377,33 @@ under the License.
             <groupId>xalan</groupId>
             <artifactId>xalan</artifactId>
           </exclusion>
+          <exclusion>
+            <groupId>org.apache.xmlgraphics</groupId>
+            <artifactId>batik-svg-dom</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>org.apache.xmlgraphics</groupId>
+            <artifactId>batik-bridge</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>org.apache.xmlgraphics</groupId>
+            <artifactId>batik-transcoder</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>org.apache.xmlgraphics</groupId>
+            <artifactId>batik-extension</artifactId>
+          </exclusion>
         </exclusions>
       </dependency>
       <dependency>
         <groupId>org.apache.xmlgraphics</groupId>
         <artifactId>batik-i18n</artifactId>
-        <version>1.10</version>
+        <version>${batik.version}</version>
       </dependency>
       <dependency>
         <groupId>org.apache.xmlgraphics</groupId>
         <artifactId>batik-constants</artifactId>
-        <version>1.10</version>
+        <version>${batik.version}</version>
       </dependency>
 
       <!-- Flowable -->
@@ -1434,11 +1466,6 @@ under the License.
       <!-- CAS -->
       <dependency>
         <groupId>org.apereo.cas</groupId>
-        <artifactId>cas-server-core-api-configuration-model</artifactId>
-        <version>${cas.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apereo.cas</groupId>
         <artifactId>cas-server-core</artifactId>
         <version>${cas.version}</version>
       </dependency>
@@ -1449,11 +1476,6 @@ under the License.
       </dependency>
       <dependency>
         <groupId>org.apereo.cas</groupId>
-        <artifactId>cas-server-core-validation-api</artifactId>
-        <version>${cas.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apereo.cas</groupId>
         <artifactId>cas-server-core-authentication</artifactId>
         <version>${cas.version}</version>
       </dependency>
@@ -1464,11 +1486,6 @@ under the License.
       </dependency>
       <dependency>
         <groupId>org.apereo.cas</groupId>
-        <artifactId>cas-server-core-configuration-metadata-repository</artifactId>
-        <version>${cas.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apereo.cas</groupId>
         <artifactId>cas-server-core-cookie</artifactId>
         <version>${cas.version}</version>
       </dependency>
@@ -1489,11 +1506,6 @@ under the License.
       </dependency>
       <dependency>
         <groupId>org.apereo.cas</groupId>
-        <artifactId>cas-server-core-services-api</artifactId>
-        <version>${cas.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apereo.cas</groupId>
         <artifactId>cas-server-core-tickets</artifactId>
         <version>${cas.version}</version>
       </dependency>
@@ -1539,12 +1551,12 @@ under the License.
       </dependency>
       <dependency>
         <groupId>org.apereo.cas</groupId>
-        <artifactId>cas-server-support-jdbc</artifactId>
+        <artifactId>cas-server-support-reports</artifactId>
         <version>${cas.version}</version>
       </dependency>
       <dependency>
         <groupId>org.apereo.cas</groupId>
-        <artifactId>cas-server-support-reports</artifactId>
+        <artifactId>cas-server-support-syncope-authentication</artifactId>
         <version>${cas.version}</version>
       </dependency>
       <dependency>
@@ -1556,6 +1568,10 @@ under the License.
             <groupId>org.opensaml</groupId>
             <artifactId>opensaml-storage-impl</artifactId>
           </exclusion>
+          <exclusion>
+            <groupId>javax.mail</groupId>
+            <artifactId>mail</artifactId>
+          </exclusion>
         </exclusions>
       </dependency>
       <dependency>
@@ -1565,6 +1581,11 @@ under the License.
       </dependency>
       <dependency>
         <groupId>org.apereo.cas</groupId>
+        <artifactId>cas-server-support-rest-service-registry</artifactId>
+        <version>${cas.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apereo.cas</groupId>
         <artifactId>cas-server-support-themes</artifactId>
         <version>${cas.version}</version>
       </dependency>
@@ -1592,6 +1613,10 @@ under the License.
             <groupId>org.opensaml</groupId>
             <artifactId>opensaml-storage-impl</artifactId>
           </exclusion>
+          <exclusion>
+            <groupId>com.sun.mail</groupId>
+            <artifactId>javax.mail</artifactId>
+          </exclusion>
         </exclusions>
       </dependency>
       <dependency>
@@ -1601,6 +1626,11 @@ under the License.
       </dependency>
       <dependency>
         <groupId>org.apereo.cas</groupId>
+        <artifactId>cas-server-support-aup-webflow</artifactId>
+        <version>${cas.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apereo.cas</groupId>
         <artifactId>cas-server-webapp-config</artifactId>
         <version>${cas.version}</version>
       </dependency>
@@ -1683,7 +1713,7 @@ under the License.
         </exclusions>
       </dependency>
       <!-- /Wicket -->
-      
+
       <dependency>
         <groupId>org.slf4j</groupId>
         <artifactId>slf4j-api</artifactId>
@@ -1751,7 +1781,7 @@ under the License.
         <artifactId>pdfbox</artifactId>
         <version>2.0.18</version>
       </dependency>
-      
+
       <dependency>
         <groupId>org.webjars</groupId>
         <artifactId>jquery</artifactId>
@@ -1796,7 +1826,7 @@ under the License.
             <artifactId>bootstrap</artifactId>
           </exclusion>
         </exclusions>
-      </dependency>      
+      </dependency>
       <dependency>
         <groupId>org.webjars</groupId>
         <artifactId>font-awesome</artifactId>
@@ -2025,7 +2055,7 @@ under the License.
         <scope>test</scope>
       </dependency>
     </dependencies>
-      
+
   </dependencyManagement>
 
   <repositories>
@@ -2039,16 +2069,6 @@ under the License.
         <enabled>true</enabled>
       </snapshots>
     </repository>
-    <repository>
-      <id>shibboleth-releases</id>
-      <url>https://build.shibboleth.net/nexus/content/repositories/releases</url>
-      <releases>
-        <enabled>true</enabled>
-      </releases>
-      <snapshots>
-        <enabled>false</enabled>
-      </snapshots>
-    </repository>
   </repositories>
 
   <pluginRepositories>
@@ -2092,7 +2112,7 @@ under the License.
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-compiler-plugin</artifactId>
-          <version>3.8.1</version> 
+          <version>3.8.1</version>
           <configuration>
             <release>${targetJdk}</release>
             <useIncrementalCompilation>false</useIncrementalCompilation>
@@ -2101,7 +2121,13 @@ under the License.
             <compilerArgument>-Xlint:unchecked</compilerArgument>
           </configuration>
         </plugin>
-        
+
+        <plugin>
+          <groupId>org.codehaus.mojo</groupId>
+          <artifactId>properties-maven-plugin</artifactId>
+          <version>1.0.0</version>
+        </plugin>
+
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-resources-plugin</artifactId>
@@ -2113,11 +2139,11 @@ under the License.
             </delimiters>
           </configuration>
         </plugin>
-        
+
         <plugin>
           <groupId>org.codehaus.mojo</groupId>
           <artifactId>build-helper-maven-plugin</artifactId>
-          <version>3.1.0</version>
+          <version>3.0.0</version>
         </plugin>
 
         <plugin>
@@ -2125,7 +2151,7 @@ under the License.
           <artifactId>maven-javadoc-plugin</artifactId>
           <version>3.1.1</version>
         </plugin>
-        
+
         <plugin>
           <groupId>org.apache.openjpa</groupId>
           <artifactId>openjpa-maven-plugin</artifactId>
@@ -2135,7 +2161,7 @@ under the License.
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-dependency-plugin</artifactId>
-          <version>3.1.2</version>
+          <version>3.1.1</version>
           <configuration>
             <outputDirectory>${bundles.directory}</outputDirectory>
             <useBaseVersion>true</useBaseVersion>
@@ -2198,13 +2224,13 @@ under the License.
             </artifactItems>
           </configuration>
         </plugin>
-        
+
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-jar-plugin</artifactId>
           <version>3.2.0</version>
         </plugin>
-        
+
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-war-plugin</artifactId>
@@ -2222,13 +2248,13 @@ under the License.
             </webResources>
           </configuration>
         </plugin>
-        
+
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-antrun-plugin</artifactId>
           <version>1.8</version>
         </plugin>
-        
+
         <plugin>
           <groupId>org.codehaus.mojo</groupId>
           <artifactId>xml-maven-plugin</artifactId>
@@ -2241,17 +2267,17 @@ under the License.
             </dependency>
           </dependencies>
         </plugin>
-        
+
         <plugin>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-maven-plugin</artifactId>
           <version>${spring-boot.version}</version>
         </plugin>
-        
+
         <plugin>
           <groupId>org.codehaus.cargo</groupId>
           <artifactId>cargo-maven2-plugin</artifactId>
-          <version>1.7.11</version>
+          <version>1.7.10</version>
           <configuration>
             <configuration>
               <type>standalone</type>
@@ -2265,7 +2291,7 @@ under the License.
             </configuration>
           </configuration>
         </plugin>
-        
+
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-surefire-plugin</artifactId>
@@ -2294,7 +2320,7 @@ under the License.
             </execution>
           </executions>
         </plugin>
-        
+
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-checkstyle-plugin</artifactId>
@@ -2329,7 +2355,7 @@ under the License.
           <artifactId>buildnumber-maven-plugin</artifactId>
           <version>1.4</version>
         </plugin>
-              
+
         <plugin>
           <groupId>org.codehaus.mojo</groupId>
           <artifactId>nbm-maven-plugin</artifactId>
@@ -2341,13 +2367,13 @@ under the License.
           <artifactId>exec-maven-plugin</artifactId>
           <version>1.6.0</version>
         </plugin>
-        
+
         <plugin>
           <groupId>org.antlr</groupId>
           <artifactId>antlr4-maven-plugin</artifactId>
           <version>${antlr4.version}</version>
         </plugin>
-        
+
         <plugin>
           <groupId>nl.geodienstencentrum.maven</groupId>
           <artifactId>sass-maven-plugin</artifactId>
@@ -2387,7 +2413,7 @@ under the License.
                 <requireMavenVersion>
                   <version>3.5.0</version>
                 </requireMavenVersion>
-              </rules> 
+              </rules>
             </configuration>
           </execution>
         </executions>
@@ -2492,7 +2518,7 @@ under the License.
           </execution>
         </executions>
       </plugin>
-      
+
       <plugin>
         <groupId>org.apache.rat</groupId>
         <artifactId>apache-rat-plugin</artifactId>
@@ -2503,7 +2529,7 @@ under the License.
             <exclude>**/nb-configuration.xml</exclude>
             <exclude>**/META-INF/cxf/**</exclude>
             <exclude>**/META-INF/services/**</exclude>
-            <exclude>**/META-INF/MANIFEST.MF</exclude>            
+            <exclude>**/META-INF/MANIFEST.MF</exclude>
             <exclude>**/*.csv</exclude>
             <exclude>**/archetype-resources/**</exclude>
             <exclude>**/AdminLTE*/**</exclude>
@@ -2534,7 +2560,7 @@ under the License.
           </execution>
         </executions>
       </plugin>
-      
+
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-remote-resources-plugin</artifactId>
@@ -2589,7 +2615,7 @@ under the License.
           </execution>
         </executions>
       </plugin>
-      
+
       <plugin>
         <groupId>org.codehaus.mojo</groupId>
         <artifactId>ianal-maven-plugin</artifactId>
@@ -2677,7 +2703,7 @@ under the License.
             <link>https://docs.spring.io/spring-security/site/docs/current/api/</link>
             <link>http://www.flowable.org/docs/javadocs/</link>
             <link>https://build.shibboleth.net/nexus/content/sites/site/java-opensaml/3.3.1/apidocs/</link>
-            <link>https://artifacts.elastic.co/javadoc/org/elasticsearch/elasticsearch/7.6.1/index.html</link>
+            <link>https://artifacts.elastic.co/javadoc/org/elasticsearch/elasticsearch/7.6.0/index.html</link>
             <link>http://docs.swagger.io/swagger-core/v2.1.1/apidocs/</link>
           </links>
         </configuration>
@@ -2750,7 +2776,7 @@ under the License.
               <dependency>
                 <groupId>org.asciidoctor</groupId>
                 <artifactId>asciidoctorj-pdf</artifactId>
-                <version>1.5.3</version>
+                <version>1.5.2</version>
               </dependency>
             </dependencies>
             <configuration>
@@ -2845,7 +2871,7 @@ under the License.
           <plugin>
             <groupId>org.apache.maven.plugins</groupId>
             <artifactId>maven-site-plugin</artifactId>
-            <version>3.9.0</version>
+            <version>3.8.2</version>
             <configuration>
               <locales>en</locales>
               <generateProjectInfo>false</generateProjectInfo>
diff --git a/wa/pom.xml b/wa/pom.xml
index 3850226..2bdb8b0 100644
--- a/wa/pom.xml
+++ b/wa/pom.xml
@@ -215,6 +215,13 @@ under the License.
     <profile>
       <id>debug</id>
 
+      <dependencies>
+        <dependency>
+          <groupId>org.springframework.boot</groupId>
+          <artifactId>spring-boot-devtools</artifactId>
+        </dependency>
+      </dependencies>
+
       <build>
         <defaultGoal>clean package spring-boot:run</defaultGoal>
 
@@ -283,4 +290,10 @@ under the License.
     </profile>
   </profiles>
 
+  <repositories>
+    <repository>
+      <id>shibboleth</id>
+      <url>https://build.shibboleth.net/nexus/content/groups/public</url>
+    </repository>
+  </repositories>
 </project>
diff --git a/wa/src/main/resources/static/images/logo.png b/wa/src/main/resources/static/images/logo.png
new file mode 100644
index 0000000..f05105e
Binary files /dev/null and b/wa/src/main/resources/static/images/logo.png differ
diff --git a/wa/src/main/resources/templates/fragments/footer.html b/wa/src/main/resources/templates/fragments/footer.html
new file mode 100644
index 0000000..d991bf5
--- /dev/null
+++ b/wa/src/main/resources/templates/fragments/footer.html
@@ -0,0 +1,30 @@
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+<footer class="py-4 d-flex flex-column justify-content-center cas-footer text-center">
+  <div class="pb-1 pt-1">
+    Copyright © 2010-${year}
+    <a href="http://www.apache.org/" target="_blank" rel="noopener noreferrer">The Apache Software Foundation</a>.</strong>
+    All rights reserved.
+  </div>
+  <div class="pb-1 pt-1">
+    <span id="copyright" th:utext="#{copyright}" class="mr-2 d-inline-block">Copyright Date Apereo, Inc</span>
+    <span class="mr-2 d-inline-block">Powered by <a href="https://github.com/apereo/cas">Apereo CAS</a></span>
+    <code class="version" th:text="${T(org.apereo.cas.util.CasVersion).getVersion() + ' ' + T(org.apereo.cas.util.CasVersion).getDateTime()}"></code>
+  </div>
+</footer>
diff --git a/wa/src/main/resources/templates/fragments/header.html b/wa/src/main/resources/templates/fragments/header.html
new file mode 100644
index 0000000..f128dc9
--- /dev/null
+++ b/wa/src/main/resources/templates/fragments/header.html
@@ -0,0 +1,217 @@
+<!DOCTYPE html>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+<html lang="en">
+
+<head>
+    <meta charset="UTF-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
+
+    <title>Header Fragment</title>
+    <link href="../../static/css/cas.css" rel="stylesheet" th:remove="tag" />
+</head>
+
+<body>
+    <div th:fragment="header">
+        <header id="app-bar" class="mdc-top-app-bar mdc-top-app-bar--fixed mdc-elevation--z4">
+            <nav class="mdc-top-app-bar__row">
+                <section class="mdc-top-app-bar__section mdc-top-app-bar__section--align-start">
+                    <!--<button class="mdc-icon-button mdc-top-app-bar__navigation-icon">
+                        <span class="mdi mdi-menu"></span>
+                        <span class="sr-only">menu</span>
+                    </button>-->
+                </section>
+                <section class="mdc-top-app-bar__section mdc-top-app-bar__section--align-center">
+                    <span class="cas-brand mx-auto">
+                        <span class="sr-only">Apache Syncope</span>
+                        <img th:src="@{'/images/logo.png'}" />
+                    </span>
+                </section>
+                <section class="mdc-top-app-bar__section mdc-top-app-bar__section--align-end">
+                    <button id="cas-notifications-menu"
+                        class="mdc-icon-button mdc-top-app-bar__action-item cas-notification-toggle"
+                        aria-label="Bookmark this page">
+                        <span class="mdi mdi-bell-alert"></span>
+                        <span class="sr-only">notifications</span>
+                        <i id="notifications-count" class="notifications-count count">2</i>
+                    </button>
+                </section>
+            </nav>
+
+        </header>
+        <aside id="app-drawer" class="mdc-drawer mdc-drawer--dismissible mdc-drawer--modal">
+            <div class="mdc-drawer__header">
+                <h3 class="mdc-drawer__title">CAS</h3>
+                <h6 class="mdc-drawer__subtitle">Central Authentication Service</h6>
+            </div>
+            <div class="mdc-drawer__content">
+                <nav class="mdc-list">
+                    <a th:href="@{/actuator}" class="mdc-list-item">
+                        <i class="mdi mdi-cogs"></i>&nbsp;
+                        <span class="mdc-list-item__text">[[#{cas.login.resources.endpoints}]]</span>
+                    </a>
+                    <hr class="mdc-list-divider" />
+                    <a class="mdc-list-item" href="https://apereo.github.io/cas">
+                        <i class="mdi mdi-file-code-outline"></i>&nbsp;
+                        <span class="mdc-list-item__text">[[#{cas.login.resources.wiki}]]</span>
+                    </a>
+                    <a class="mdc-list-item" href="https://github.com/apereo/cas/pulls">
+                        <i class="mdi mdi-call-merge"></i>&nbsp;
+                        <span class="mdc-list-item__text">[[#{cas.login.resources.pulls}]]</span>
+                    </a>
+                    <a class="mdc-list-item" href="https://apereo.github.io/cas/developer/Contributor-Guidelines.html">
+                        <i class="mdi mdi-information"></i>&nbsp;
+                        <span class="mdc-list-item__text">[[#{cas.login.resources.contribguide}]]</span>
+                    </a>
+                    <a class="mdc-list-item" href="https://apereo.github.io/cas/Support.html">
+                        <i class="mdi mdi-help-circle"></i>&nbsp;
+                        <span class="mdc-list-item__text">[[#{cas.login.resources.support}]]</span>
+                    </a>
+                    <a class="mdc-list-item" href="https://apereo.github.io/cas/Mailing-Lists.html">
+                        <i class="mdi mdi-email-newsletter"></i>&nbsp;
+                        <span class="mdc-list-item__text">[[#{cas.login.resources.mailinglist}]]</span>
+                    </a>
+                    <a class="mdc-list-item" href="https://gitter.im/apereo/cas">
+                        <i class="mdi mdi-message-text"></i>&nbsp;
+                        <span class="mdc-list-item__text">[[#{cas.login.resources.chat}]]</span>
+                    </a>
+                    <a class="mdc-list-item" href="https://apereo.github.io/">
+                        <i class="mdi mdi-post"></i>&nbsp;
+                        <span class="mdc-list-item__text">[[#{cas.login.resources.blog}]]</span>
+                    </a>
+                </nav>
+            </div>
+        </aside>
+
+        <script>var countMessages = 0;</script>
+        <div class="mdc-dialog cas-notification-dialog" id="cas-notification-dialog" role="alertdialog"
+            aria-modal="true" aria-labelledby="notif-dialog-title" aria-describedby="notif-dialog-content">
+            <div class="mdc-dialog__container">
+                <div class="mdc-dialog__surface">
+                    <h2 class="mdc-dialog__title mt-2" id="notif-dialog-title">
+                        Notifications
+                    </h2>
+                    <div class="mdc-dialog__content" id="notif-dialog-content">
+                        <div class="cas-notification-message mdc-typography--body1" th:if="${staticAuthentication}">
+                            <script>countMessages++;</script>
+                            <h5 class="mdc-typography--headline6" th:utext="#{screen.defaultauthn.title}" />
+                            <p class="text text-wrap small" th:utext="#{screen.defaultauthn.heading}">
+                                Static AuthN is ONLY useful for demo purposes. It is recommended that you connect CAS to
+                                LDAP,
+                                JDBC, etc
+                                instead.
+                            </p>
+                        </div>
+                        <div class="cas-notification-message mdc-typography--body1"
+                            th:if="${not #httpServletRequest.secure}">
+                            <h5 class="mdc-typography--headline6" th:utext="#{screen.nonsecure.title}" />
+                            <script>countMessages++;</script>
+                            <p class="text-wrap small" th:utext="#{screen.nonsecure.message}">
+                                Unsure Connection
+                            </p>
+                        </div>
+                    </div>
+                    <footer class="mdc-dialog__actions">
+                        <button type="button" class="mdc-button mdc-dialog__button" data-mdc-dialog-action="accept"
+                            data-mdc-dialog-button-default>
+                            <span class="mdc-button__label">OK</span>
+                        </button>
+                    </footer>
+                </div>
+            </div>
+            <div class="mdc-dialog__scrim"></div>
+        </div>
+        <script type="text/javascript">
+            
+            (function (material) {
+                var header = {
+                    init: function () {
+                        header.attachTopbar();
+                        material.autoInit();
+                    },
+                    attachDrawer: function () {
+                        var elm = document.getElementById('app-drawer');
+                        var drawer = material.drawer.MDCDrawer.attachTo(elm);
+                        var closeDrawer = function (evt) {
+                            drawer.open = false;
+                        };
+                        drawer.foundation_.handleScrimClick = closeDrawer;
+                        document.onkeydown = function (evt) {
+                            evt = evt || window.event;
+                            if (evt.keyCode == 27) {
+                                closeDrawer();
+                            }
+                        };
+
+                        header.drawer = drawer;
+
+                        return drawer;
+                    },
+                    attachTopbar: function (drawer) {
+                        var drawer = header.attachDrawer();
+                        var dialog = header.attachNotificationDialog();
+                        header.attachDrawerToggle(drawer);
+                        header.attachNotificationToggle(dialog);
+                    },
+                    checkCaps: function (ev) {
+                        var s = String.fromCharCode(ev.which);
+                        if (s.toUpperCase() === s && s.toLowerCase() !== s && !ev.shiftKey) {
+                            ev.target.parentElement.classList.add('caps-on');
+                        } else {
+                            ev.target.parentElement.classList.remove('caps-on');
+                        }
+                    },
+                    attachDrawerToggle: function (drawer) {
+                        var topAppBar = material.topAppBar.MDCTopAppBar.attachTo(document.getElementById('app-bar'));
+                        topAppBar.setScrollTarget(document.getElementById('main-content'));
+                        topAppBar.listen('MDCTopAppBar:nav', function () {
+                            drawer.open = !drawer.open;
+                        });
+                        return topAppBar;
+                    },
+                    attachNotificationDialog: function () {
+                        var element = document.getElementById('cas-notification-dialog');
+                        var dialog = material.dialog.MDCDialog.attachTo(element);
+                        return dialog;
+                    },
+                    attachNotificationToggle: function (dialog) {
+                        var btn = document.getElementById('cas-notifications-menu');
+                        btn.addEventListener('click', () => {
+                            dialog.open();
+                        });
+                    }
+                }
+
+
+                document.addEventListener('DOMContentLoaded', function () {
+                    header.init();
+
+                    if (countMessages == 0) {
+                        window.jQuery('#notifications-count').remove();
+                    } else {
+                        window.jQuery('#notifications-count').text("(" + countMessages + ")")
+                    }
+                });
+            })(mdc);
+        </script>
+    </div>
+</body>
+
+</html>