...
The property idp.warning.unsetCookieWhenFalse may be set to false to globally disable this behavior, in which case the cookie is never cleared by this flow.
A bean named shibboleth.warning.CookieCondition may be defined in warning-intercept-config.xml to supply a Predicate<String> to indicate whether to clear the cookie. The input value is the key in the map of warning conditions being processed, allowing different warnings to rely on the cookie differently.
For the latter, if you wish to create a scripted condition to support this use case, the “typical” parent bean for that won’t work as it assumes a different type of input. The class net.shibboleth.shared.logic.ScriptedPredicate is a more generic version that allows any type of input, but otherwise follows the same sort of pattern as the numerous examples of the shibboleth.Conditions.Scripted bean shown throughout the documentation.
Views
The view templates can largely be modeled on existing views, particularly the expiring-password.vm file, which illustrates how to advance the flow forward. For reference the variables generally available to the views are described in VelocityVariables though they are not specific to Velocity-based views.
...