This post is not official yet and may be heavily edited as CAS development makes progress. Watch for further updates.
The blog is managed and hosted on GitHub. If you wish to update the contents of this post or if you have found an inaccuracy and wish to make corrections, we recommend that you please submit a pull request to this repository.
The official CAS
6.0.0 GA was released on December 28th, 2018. Since then, the project has been moving forward with the development of the next feature release that is tagged as
6.1.0. Please review the release policy to learn more about the scope of the release. This post intends to highlight some of the improvements and enhancements packed into the fifth release candidate in the
You can read about the previous release candidate here.
- Get Involved
- New & Noteworthy
- Redis Authentication
- Password History Tracking
- Scripting Authentication via Groovy
- Attribute Consent via Redis
- MFA Trusted Devices Bypass
- U2F MFA Trusted Devices
- Scripted Attribute Value Filters
- Actuator Endpoint Exposure
- Webflow Error Handling
- U2F Redis Device Registration
- Shared Webapp Resources
- Acceptable Usage Policy via Redis
- JMX Integration
- Fewer Bundled Webapp Modules
- MFA Trusted Devices GeoLocation Fingerprint
- Ticket Registry Expiration Policies
- Other Stuff
- Library Upgrades
- Start your CAS deployment today. Try out features and share feedback.
- Better yet, contribute patches.
- Suggest and apply documentation improvements.
Shake Well Before Use
We strongly recommend that you take advantage of the release candidates as they come out. Waiting for a
GA release is only going to set you up for unpleasant surprises. A
GA is simply a tag and nothing more. Note that CAS releases are strictly time-based releases; they are not scheduled or based on specific benchmarks, statistics or completion of features. To gain confidence in a particular release, it is strongly recommended that you start early by experimenting with release candidates and/or follow-up snapshots.
In order to start experimenting with release candidates, at any given time, you should be able to append
-SNAPSHOT to the CAS version specified in order to take advantage of snapshot builds as changes are made and published.
gradle.properties of the overlay, adjust the following setting:
There are no changes to the minimum system/platform requirements for this release.
New & Noteworthy
User accounts can now be authenticated against Redis. Likewise, the integration is also allowed to fetch attributes from Redis databases without or without authentication against Redis.
Password History Tracking
Password Management in CAS gains the ability to also track password history and prevent recycling old passwords where appropriate.
Scripting Authentication via Groovy
Designing a new authentication handler can now be done via a Groovy script without having to tap into CAS internal APIs.
Attribute Consent via Redis
Attribute consent decisions can now be tracked and stored inside Redis.
MFA Trusted Devices Bypass
The multifactor trusted device capability gains the ability to specify bypass options per application.
U2F MFA Trusted Devices
The multifactor trusted device capability can now be automatically applied to U2F MFA flows.
Scripted Attribute Value Filters
This may be a breaking change. Please examine your external scripted attribute value filters to make sure the script body matches the structure required by the filter component. You may simply need to write the script around a
runmethod with arguments passed as an
Scripted attribute value filters are now pre-compiled and cached to deliver better performance when it comes to parsing and running Groovy scripts.
Additionally, most if not all scripting functionality is revisited to ensure compiled scripts can be cached as efficiently as possible to improve execution performance.
Actuator Endpoint Exposure
Actuator endpoints provided by CAS and/or Spring Boot are now tagged with
@ConditionalOnAvailableEndpoint instead of the now-deprecated
which makes sure endpoints are both enabled and exposed.
While we do not anticipate this to be a breaking change for CAS overlays, you do need to make sure the endpoints that are enabled are also exposed either via web or jmx before they can be functional.
Webflow Error Handling
Handling of webflow exceptions and errors is now generalized into implementations of
CasWebflowExceptionHandler to allow
modules in CAS and custom code outside CAS maximum flexibility when it comes to modifying error messages or handling exceptions.
U2F Redis Device Registration
FIDO U2F devices can now be stored inside a Redis database/cluster.
Shared Webapp Resources
Shared web application resources such as configuration files and HTML views are now moved into a separate CAS module
This should not require a change to how the overlay works. If the resources are in a jar then they can still be overridden by resources in the webapp’s
WEB-INF\classes folder (i.e.
src\main\resources of the overlay). This is possible because
WEB-INF\classes is first in classpath before
The CAS overlay is also modified to comply with this change, when asked to fetch resources from the exploded CAS web application.
While we do not anticipate this to be a breaking change for CAS overlays, you do need to make sure the overlay is updated to match and include the provided task definitions that recognize the new module.
Acceptable Usage Policy via Redis
Acceptable Usage Policy decisions can now tracked and stored inside Redis.
A number of CAS components can be registered and exposed over JMX to provide remote insight into the running CAS software.
Fewer Bundled Webapp Modules
This might be a breaking change. Consult the CAS documentation to verify details.
The following CAS feature modules are extracted and moved out of the default CAS web application bundle to reduce configuration overhead and improve startup time. You will need to expressly list them in your CAS overlay build script to activate the feature:
cas-server-support-pm-webflow: Password Management Webflow configuration
cas-server-support-throttle: Authentication Throttling core configuration
cas-server-support-geolocation: Geolocation Core configuration; generally pulled in automatically depending on the method of geotracking.
cas-server-support-reports: CAS Actuator endpoints backed by Spring Boot; must be pulled in if you rely on the old
cas-server-core-events: Authentication Events tracking and configuration
cas-server-core-events-configuration: Core configuration and event listeners for rebinding CAS settings for hot reloads.
cas-server-core-monitor: Configuration for simple CAS
HealthIndicators on memory and ticket state.
cas-server-core-configuration-metadata-repository: CAS configuration metadata endpoint and repository.
MFA Trusted Devices GeoLocation Fingerprint
Device fingerprints may now also be calculated using geolocation data provided by browser, when working with the multifactor trusted device feature.
Ticket Registry Expiration Policies
Core refinements are made internally to the construction of ticket registry expiration policy components to allow values to become refreshable via
without interfering with object serialization with cache-based ticket registries such as Memcached, Hazelcast, etc.
- Cassandra as a ticket registry is improved to take advantage of distinct tables for ticket types per the CAS ticket catalog.
- Principal transformation via Groovy can now detect and load changes to the external Groovy script automatically.
- LDAP search queries can now process paged responses, instructed by CAS configuration, to fully obtain LDAP results from a query.
- Minor fixes to properties and relevant documentation for typos, etc.
- Incremental and performance improvements to MongoDb acting as a service registry and a ticket registry.
- Minor fixes to Passwordless AuthN in terms of error handling and webflow navigation.
- Dynamic Spring Webflow Configurers are now made into conditional beans to provider an easier channel for overrides.
cas-server-support-validationmodule is broken apart separate auto-configuration from core components.
- Delegated authentication to SAML2 identity providers gains the ability to specify signed authentication requests, multiple context classes, etc.
- Amazon SDK
- Apache Tomcat
- Spring Boot
- Spring Integration
- Spring Security
- MariaDb Driver
- Apache Ignite
Big thanks to all who participate in the development of this release to submit patches and contribute improvements. Keep’em coming!