WORKERS AHEAD!
You are viewing the development documentation for the Apereo CAS server. The functionality presented here is not officially released yet. This is a work in progress and will be continually updated as development moves forward. You are most encouraged to test the changes presented.
Webflow Decorations
There are times where you may need to modify the CAS webflow to include additional data, typically fetched from outside resources and endpoints that may also be considered sensitive and may require credentials for access. Examples include displaying announcements on the CAS login screen or other types of dynamic data. You can certainly extend the webflow to include additional states and actions into the login flow to call upon endpoints and data sources to fetch data. An easier option would be to let CAS decorate the webflow automatically by reaching out to your REST endpoints, etc, taking care of the internal webflow configuration. Such decorators specifically get called upon as CAS begins to render the login view while reserving the right to decorate additional parts of the webflow in the future.
Note that decorators only inject data into the webflow context where that data later on becomes available to the CAS view, and more. Once the data is available, you still have the responsibility of using that data to properly display it in the appropriate view and style it correctly.
Remember that objects and data put into the webflow context must always be Serializable
. Complex
objects and data structures that do not pass the serialization requirement will most likely break the flow.
Decorators
The following decorators are available:
Option | Reference |
---|---|
Groovy | See this guide. |
REST | See this guide. |
Note that decorators are typically executed prior to the webflow runtime executing a particular action, and they are almost always executed for all webflow actions regardless of the owning flow. This gives you the option to decorate all CAS webflows as well as subflows with additional data, if necessary and you are not limited to decorating just the login flow or the login page.
Custom
It is possible to design and inject your webflow decorator into CAS using
the following @Bean
that would be registered in a @AutoConfiguration
class:
1
2
3
4
@Bean
public WebflowDecorator myWebflowDecorator() {
return new MyWebflowDecorator();
}
Your configuration class needs to be registered with CAS. See this guide for better details.