Building and Deploying

New CAS documentation site

CAS documentation has moved over to apereo.github.io/cas, starting with CAS version 4.x. The wiki will no longer be maintained. For the most recent version of the documentation, please refer to the aforementioned link.

As of CAS 3.1, CAS builds exclusively with the Maven 2 Build Management System. This system provides a common build and directory structure across all projects that use Maven 2 and defines common goals that can be applied to any project type (JAR, WAR, EAR, etc.).

Building CAS

In your CAS_HOME, you can type "mvn package install". This will create all of the jar and war files for the CAS modules. Alternatively, you can enter any of the CAS_HOME/{module} sub directories and execute "mvn package install" to generate just that particular JAR or WAR.

As compilation requires a network connection, if you are behind a http proxy, you have to indicate some extra option to mvn command: "mvn -Dhttp.proxyHost=xxx -Dhttp.proxyPort=xxx package install"

Alternatively, you can specify the proxy explicitly in the maven settings.xml file

Deploying CAS

If you've built CAS as above, you will find a WAR file in the cas-server-webapp folder that you can use to deploy CAS. That's the simple demo case.

Customizing and Deploying CAS

As in previous versions of CAS, there is the deployerConfigContext.xml in the cas-server-webapp/src/main/webapp/WEB-INF directory. You can use this to configure your Authentication Handlers. There is also a cas.properties file with some URLs for configuring and securing the Services Management Application. Dependencies are added to the web application by adding a new dependency to the Maven 2 POM file for the cas-server-webapp (this includes custom modules, or any of the ones that CAS provides). Under "Authentication", you'll find more details on configuring each of the Authentication Handlers.

Once you've configured CAS, you can run "mvn package" to generate the WAR file.

WAR Overlay

Deployers concerned about the management of local customizations can use the Maven2 WAR Overlay method for keeping their local changes separate from the main distribution. Details on that can be found here.