java-tutorials/cas/cas-server
Seun Matt 65e21d3f6a example code for BAEL-3749 (#8815)
* example code for BAEL-3749

* added live test

* added live test

* improved exception handling in response log filter

* propage exception in example code

* updated repo with upstream

* added example code for BAEL-3293

* updated the example code for BAEL-3749

* updated the example code for BAEL-3749

* updated the example code for BAEL-3749

* updated the example code for BAEL-3749
2020-03-29 13:36:54 -07:00
..
etc/cas example code for BAEL-3749 (#8815) 2020-03-29 13:36:54 -07:00
gradle example code for BAEL-3749 (#8815) 2020-03-29 13:36:54 -07:00
src/main example code for BAEL-3749 (#8815) 2020-03-29 13:36:54 -07:00
.gitignore example code for BAEL-3749 (#8815) 2020-03-29 13:36:54 -07:00
.mergify.yml example code for BAEL-3749 (#8815) 2020-03-29 13:36:54 -07:00
.travis.yml example code for BAEL-3749 (#8815) 2020-03-29 13:36:54 -07:00
Dockerfile example code for BAEL-3749 (#8815) 2020-03-29 13:36:54 -07:00
LICENSE.txt Merge pull request #8125 from eugenp/revert-8119-BAEL-3275-2 2019-10-31 20:43:47 -05:00
README.md example code for BAEL-3749 (#8815) 2020-03-29 13:36:54 -07:00
build.gradle example code for BAEL-3749 (#8815) 2020-03-29 13:36:54 -07:00
docker-build.sh example code for BAEL-3749 (#8815) 2020-03-29 13:36:54 -07:00
docker-compose.yml example code for BAEL-3749 (#8815) 2020-03-29 13:36:54 -07:00
docker-push.sh example code for BAEL-3749 (#8815) 2020-03-29 13:36:54 -07:00
docker-run.sh example code for BAEL-3749 (#8815) 2020-03-29 13:36:54 -07:00
gradle.properties example code for BAEL-3749 (#8815) 2020-03-29 13:36:54 -07:00
gradlew example code for BAEL-3749 (#8815) 2020-03-29 13:36:54 -07:00
gradlew.bat example code for BAEL-3749 (#8815) 2020-03-29 13:36:54 -07:00
pom.xml example code for BAEL-3749 (#8815) 2020-03-29 13:36:54 -07:00
settings.gradle example code for BAEL-3749 (#8815) 2020-03-29 13:36:54 -07:00

README.md

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.1.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