Der CAS Server wird als Lösung zur Authentifizierung (bspw. Single Sign-on) für diverse Webanwendungen im Unternehmen verwendet. Dies macht es oft erforderlich, zumindest die Anmeldeseite dem Corporate Design des Unternehmens anzupassen. Der folgende Beitrag hat das Ziel, dem Leser einen technischen Überblick über die Möglichkeiten zu verschaffen, wie dies realisiert werden kann.
Technischer Überblick
WAR Overlay
Für Anpassungen der Oberfläche und Konfigurationen empfehle ich die Verwendung des CAS Overlay Templates. Hierbei handelt es sich um ein Maven/Gradle Projekt, welches die WAR Datei des CAS Servers inklusive der eigenen Änderungen erstellt. Die WAR Datei kann anschließend bspw. in einem Apache Tomcat deployed werden.
Durch dieses Vorgehen ergeben sich folgende Vorteile:
- Es ist kein manueller Download des CAS Server Quellcodes notwendig.
- Es müssen nur die Dateien erstellt werden, die auch verändert werden müssen.
- Die Überwachung der Anpassungen ist dadurch übersichtlicher.
- Änderungen lassen sich unkomplizierter und dadurch schneller vornehmen.
Das CAS Overlay Template kann in folgenden GitHub Repositorys heruntergeladen bzw. gecloned werden.
- Maven: https://github.com/apereo/cas-overlay-template
- Gradle: https://github.com/apereo/cas-gradle-overlay-template
Struktur des Overlay Projekts
Die Verzeichnisstruktur des Overlay Projekts (\src\main\resources\static) lehnt sich sehr stark an die Struktur der CAS Server Anwendung (\WEB-INF\classes\static) an. Sämtliche Ressourcen (CSS, JavaScript, Templates, etc.), die angepasst und somit überschrieben werden sollen, müssen sich im selben relativen Pfad im Overlay Projekt unterhalb von \static befinden.

Tipp: Die Verzeichnisstruktur des CAS Servers inkl. der Ressourcen kann durch den Build (bspw. via mvn package) eines Overlay Projekts im Target-Verzeichnis (\target\cas\WEB-INF\classes\static) generiert werden. Sollten im Overlay Projekt bereits Ressourcen unterhalb des \static Pfads existieren, überschreiben diese die Standarddateien.
Template Engine: Thymeleaf
CAS Server nutzt Thymeleaf als Java Template Engine. Sie kann HTML, XML, JavaScript und CSS verarbeiten.
Dabei ermöglicht sie mit HTML-Notationen, Logik zu implementieren. Zu diesem Zweck wird ein eigener XML-Namespace („th:“) verwendet. Dies hat den Vorteil, dass die Template-HTML-Dateien der HTML Syntax (well-formed) entsprechen.
Thymeleaf vereinfacht die Zusammenarbeit von Webdesignern und Entwicklern durch einen Mechanismus, der beide Gruppen parallel an den Templates arbeiten lässt. Eine detailliertere Dokumentation von Thymeleaf ist hier zu finden.
Themes
Das CAS Overlay bietet die Möglichkeit, statische und dynamische Themes zu erstellen.
Das statische Theme legt das Design der Anwendung fest. Die Pfade zu den Ressourcen werden in der cas-theme-default.properties Datei konfiguriert. Standardmäßig befinden sich die Dateien (CSS; JavaScript) im Verzeichnis \src\main\resources\static in den Unterordnern \css und \js.
Dynamische Themes werden hingegen dafür verwendet, in Abhängigkeit von URL-Pfaden, Nutzern, etc., unterschiedliche Designs darzustellen. Ein Anwendungsgebiet dafür sind beispielsweise Tochterunternehmen mit ihrem eigenen CD, die dennoch einen gemeinsamen Authentifizerungsdienst nutzen.
Weiterführende Links: