CAS 4.0.0 is in the process of being released, and the documentation is not comprehensive. Here are somethings I did to get from CAS 3.3.1 to CAS 4.0.0 in terms of the maven overlay project. This was mainly to get the fix for CAS-1318.
Overlay pom dependencies
updated cas-server-webapp from 3.3.1 to 4.0.0
added cas-management-webapp 4.0.0
added cas-server-support-generic 4.0.0
added cas-server-support-x509 4.0.0
added cas-server-support-openid 4.0.0
cas-server-support-ldap 4.0.0
removed outdated dependencies from overlay/lib
Files copied over from github https://github.com/Jasig/cas/tree/master/cas-server-webapp
src/main/webapp/WEB-INF/webflow/login/login-webflow.xml
src/main/webapp/WEB-INF/webflow/logout/login-webflow.xml
src/main/webapp/WEB-INF/cas-servlet.xml (too many changes, added my changes after copying over)
Updated files
login-webflow.xml,
uncommented startAuthenticate, changed flow in serviceAuthorizationCheck to transition to startAuthenticate instead. Note: my project was using x509check, so the commented out code seemed to run the x509check
deployerConfigContext.xml,
added namespace util
modified auditTrailManager bean to point to new class
added healthCheckMonitor bean
added registeredServiceList, modified to fit our services
added monitorsList
xml schema upgrades in overlayed xml files
beans 2 -> beans 3
webflow 1 -> webflow 2
Changed Credentials.class references to Credential.class in custom code in extensions
Relevant Links
http://jasig.github.io/cas/4.0.0/index.html
https://wiki.jasig.org/display/CASUM/Auditing+and+Statistics+Via+Inspektr
https://github.com/UniconLabs/simple-cas-overlay-template
https://github.com/Jasig/cas/blob/master/cas-server-core
https://wiki.jasig.org/display/CASUM/Best+Practice+-+Setting+Up+CAS+Locally+using+the+Maven+WAR+Overlay+Method
https://github.com/leleuj/cas-overlay-demo/blob/master/cas-overlay-server-demo/src/main/webapp/WEB-INF/deployerConfigContext.xml
https://wiki.jasig.org/display/CASUM/Upgrading
https://wiki.jasig.org/display/CASUM/X.509+Certificates
https://github.com/Jasig/cas/blob/master/cas-server-support-x509/src/test/resources/deployerConfigContext.xml
https://github.com/Jasig/cas/blob/master/cas-server-support-x509/src/main/java/org/jasig/cas/adaptors/x509/authentication/handler/support/X509CredentialsAuthenticationHandler.java
http://comments.gmane.org/gmane.comp.java.jasig.cas.user/17466
https://groups.google.com/forum/#!msg/jasig-cas-user/jS2GjedsMd4/o-MGC_Tpn7IJ
https://wiki.jasig.org/display/CASUM/OpenID
https://github.com/leleuj/cas-openid-demo/blob/master/cas-openid-server-demo/src/main/webapp/WEB-INF/cas-servlet.xml
https://groups.google.com/forum/#!msg/jasig-cas-user/jS2GjedsMd4/o-MGC_Tpn7IJ
https://wiki.jasig.org/display/CASUM/Services+Management
http://mmmsoftware.blogspot.com/2008/11/migrating-from-spring-webflow-1-to.html
http://www.jasig.org/upgrading-spring-web-flow-2-cas4
https://github.com/Jasig/cas/wiki/Installation-Guide
https://github.com/Jasig/cas/wiki/CAS4-Documentation-(GitHub-Pages)
https://github.com/Jasig/cas/blob/master/cas-server-webapp/src/main/webapp/WEB-INF/cas-servlet.xml
Each project is different, but I basically just fixed compilation errors and went through the runtime errors. I didn’t write down the details of each change, but the relevant links should have more information on what the exact changes were.
Good luck!