tvl-depot/third_party/apereo-cas/overlay
Luke Granger-Brown 1915fbccd6 feat(3p/apereo-cas): initial Nix derivation (no TVL-specific config yet)
Change-Id: Ie7d52370dd554b110bbfa041b943fcf246373b94
Reviewed-on: https://cl.tvl.fyi/c/depot/+/933
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2020-07-05 22:42:39 +00:00
..
.github merge(3p/apereo-cas-overlay): Merge commit '2e185f50c38db1a85f39a6bd5ad4c4e58462f003' as 'third_party/apereo-cas/overlay' 2020-07-05 19:17:12 +00:00
etc/cas merge(3p/apereo-cas-overlay): Merge commit '2e185f50c38db1a85f39a6bd5ad4c4e58462f003' as 'third_party/apereo-cas/overlay' 2020-07-05 19:17:12 +00:00
gradle feat(3p/apereo-cas): initial Nix derivation (no TVL-specific config yet) 2020-07-05 22:42:39 +00:00
src/main merge(3p/apereo-cas-overlay): Merge commit '2e185f50c38db1a85f39a6bd5ad4c4e58462f003' as 'third_party/apereo-cas/overlay' 2020-07-05 19:17:12 +00:00
.dockerignore merge(3p/apereo-cas-overlay): Merge commit '2e185f50c38db1a85f39a6bd5ad4c4e58462f003' as 'third_party/apereo-cas/overlay' 2020-07-05 19:17:12 +00:00
.gitattributes merge(3p/apereo-cas-overlay): Merge commit '2e185f50c38db1a85f39a6bd5ad4c4e58462f003' as 'third_party/apereo-cas/overlay' 2020-07-05 19:17:12 +00:00
.gitignore merge(3p/apereo-cas-overlay): Merge commit '2e185f50c38db1a85f39a6bd5ad4c4e58462f003' as 'third_party/apereo-cas/overlay' 2020-07-05 19:17:12 +00:00
.mergify.yml merge(3p/apereo-cas-overlay): Merge commit '2e185f50c38db1a85f39a6bd5ad4c4e58462f003' as 'third_party/apereo-cas/overlay' 2020-07-05 19:17:12 +00:00
.travis.yml merge(3p/apereo-cas-overlay): Merge commit '2e185f50c38db1a85f39a6bd5ad4c4e58462f003' as 'third_party/apereo-cas/overlay' 2020-07-05 19:17:12 +00:00
build.gradle feat(3p/apereo-cas): initial Nix derivation (no TVL-specific config yet) 2020-07-05 22:42:39 +00:00
docker-build.sh merge(3p/apereo-cas-overlay): Merge commit '2e185f50c38db1a85f39a6bd5ad4c4e58462f003' as 'third_party/apereo-cas/overlay' 2020-07-05 19:17:12 +00:00
docker-compose.yml merge(3p/apereo-cas-overlay): Merge commit '2e185f50c38db1a85f39a6bd5ad4c4e58462f003' as 'third_party/apereo-cas/overlay' 2020-07-05 19:17:12 +00:00
docker-push.sh merge(3p/apereo-cas-overlay): Merge commit '2e185f50c38db1a85f39a6bd5ad4c4e58462f003' as 'third_party/apereo-cas/overlay' 2020-07-05 19:17:12 +00:00
docker-run.sh merge(3p/apereo-cas-overlay): Merge commit '2e185f50c38db1a85f39a6bd5ad4c4e58462f003' as 'third_party/apereo-cas/overlay' 2020-07-05 19:17:12 +00:00
Dockerfile merge(3p/apereo-cas-overlay): Merge commit '2e185f50c38db1a85f39a6bd5ad4c4e58462f003' as 'third_party/apereo-cas/overlay' 2020-07-05 19:17:12 +00:00
gradle.properties merge(3p/apereo-cas-overlay): Merge commit '2e185f50c38db1a85f39a6bd5ad4c4e58462f003' as 'third_party/apereo-cas/overlay' 2020-07-05 19:17:12 +00:00
gradlew merge(3p/apereo-cas-overlay): Merge commit '2e185f50c38db1a85f39a6bd5ad4c4e58462f003' as 'third_party/apereo-cas/overlay' 2020-07-05 19:17:12 +00:00
gradlew.bat merge(3p/apereo-cas-overlay): Merge commit '2e185f50c38db1a85f39a6bd5ad4c4e58462f003' as 'third_party/apereo-cas/overlay' 2020-07-05 19:17:12 +00:00
LICENSE.txt merge(3p/apereo-cas-overlay): Merge commit '2e185f50c38db1a85f39a6bd5ad4c4e58462f003' as 'third_party/apereo-cas/overlay' 2020-07-05 19:17:12 +00:00
lombok.config merge(3p/apereo-cas-overlay): Merge commit '2e185f50c38db1a85f39a6bd5ad4c4e58462f003' as 'third_party/apereo-cas/overlay' 2020-07-05 19:17:12 +00:00
README.md merge(3p/apereo-cas-overlay): Merge commit '2e185f50c38db1a85f39a6bd5ad4c4e58462f003' as 'third_party/apereo-cas/overlay' 2020-07-05 19:17:12 +00:00
settings.gradle merge(3p/apereo-cas-overlay): Merge commit '2e185f50c38db1a85f39a6bd5ad4c4e58462f003' as 'third_party/apereo-cas/overlay' 2020-07-05 19:17:12 +00:00

CAS Overlay Template Build Status

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 6.2.x
  • JDK 11

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 {
    compile "org.apereo.cas:cas-server-some-module:${project.casVersion}"
    ...
}

To collect the list of all project modules and dependencies:

./gradlew[.bat] allDependencies

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 password changeit for both the keystore and the key/certificate entries. This can either be done using the JDK's keytool 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.

Jib

The overlay embraces the Jib Gradle Plugin to provide easy-to-use out-of-the-box tooling for building CAS docker images. Jib is an open-source Java containerizer from Google that lets Java developers build containers using the tools they know. It is a container image builder that handles all the steps of packaging your application into a container image. It does not require you to write a Dockerfile or have Docker installed, and it is directly integrated into the overlay.

./gradlew build jibDockerBuild

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