CAS Overlay Template
Generic CAS WAR overlay to exercise the latest versions of CAS. This overlay could be freely used as a starting template for local CAS war overlays.
Versions
- CAS
7.0.4
- JDK
21
Overview
To build the project, use:
# Use --refresh-dependencies to force-update SNAPSHOT versions
./gradlew[.bat] clean build
To see what commands are available to the build script, run:
./gradlew[.bat] tasks
To launch into the CAS command-line shell:
./gradlew[.bat] downloadShell runShell
To fetch and overlay a CAS resource or view, use:
./gradlew[.bat] getResource -PresourceName=[resource-name]
To list all available CAS views and templates:
./gradlew[.bat] listTemplateViews
To unzip and explode the CAS web application file and the internal resources jar:
./gradlew[.bat] explodeWar
Configuration
- The
etc
directory contains the configuration files and directories that need to be copied to/etc/cas/config
.
./gradlew[.bat] copyCasConfiguration
- The specifics of the build are controlled using the
gradle.properties
file.
Adding Modules
CAS modules may be specified under the dependencies
block of the Gradle build script:
dependencies {
implmentation "org.apereo.cas:cas-server-some-module:${project.casVersion}"
...
}
To collect the list of all project modules and dependencies:
./gradlew[.bat] allDependencies
You could also add modules and dependencies dynamically on the fly using the casModules
project property. For example, to include support for OpenID Connect and Duo Security, you could invoke the build using -PcasModules=oidc,duo
and have it auto-include modules that provide requested functionality. Needless, to say, you will need to know the module name beforehand.
Clear Gradle Cache
If you need to, on Linux/Unix systems, you can delete all the existing artifacts (artifacts and metadata) Gradle has downloaded using:
# Only do this when absolutely necessary
rm -rf $HOME/.gradle/caches/
Same strategy applies to Windows too, provided you switch $HOME
to its equivalent in the above command.
Deployment
- Create a keystore file
thekeystore
under/etc/cas
. Use the passwordchangeit
for both the keystore and the key/certificate entries. This can either be done using the JDK'skeytool
utility or via the following command:
./gradlew[.bat] createKeystore
- Ensure the keystore is loaded up with keys and certificates of the server.
On a successful deployment via the following methods, CAS will be available at:
https://cas.server.name:8443/cas
Executable WAR
Run the CAS web application as an executable WAR:
./gradlew[.bat] run
Debug the CAS web application as an executable WAR:
./gradlew[.bat] debug
Run the CAS web application as a standalone executable WAR:
./gradlew[.bat] clean executable
External
Deploy the binary web application file cas.war
after a successful build to a servlet container of choice.
Docker
The following strategies outline how to build and deploy CAS Docker images.
Dockerfile
You can also use the native Docker tooling and the provided Dockerfile
to build and run CAS.
chmod +x *.sh
./docker-build.sh
./docker-run.sh