Implement a FlowExecutionRepository that doesn't impose Serializable on the view and conversation scopes
Description
Environment
Activity
Scott CantorMay 6, 2015 at 3:57 PM
Just as a possibly related piece of work:
Scott CantorDecember 17, 2014 at 3:47 PM
The back button behavior that actually is bothering me is that SWF doesn't honor the history list, it's re-rendering an error and essentially going "forward" again into an error so that the back button just traps you.
I'm planning to look at implementing some kind of Javascript in the error view for this error condition that tries to move back in the history list or at least presents a link to do that.
I don't actually want the back button to ever work, that's incompatible with the SSO protocols the IdP supports.
Marvin AddisonDecember 17, 2014 at 3:13 PM
Since you mentioned a desire for better back-button handling, I'll throw this out:
https://github.com/serac/spring-webflow-client-repo
It's the opposite of what you're trying to do and admittedly infeasible for the large, complex flows of the IdP, but it does work well for some cases. The driving force for me was session timeouts breaking the login flow in CAS, which was a pain case for us. I would argue we got better back-button behavior as a side-effect.
Rod WiddowsonDecember 12, 2014 at 10:54 AM
Is this related to ? Or does it supersede it?
Scott CantorSeptember 19, 2014 at 3:11 AM
Pushing this to post-3.0 for now. I'm very unhappy with the back button handling in SWF, but I don't know that it will be much better regardless of what we do, and I don't know that we could really manage to implement anything.
We're not going to snapshot the context tree, and allowing flows to go backwards without resetting the tree's state seems very dangerous at best and catastrophic at worst.
Details
Assignee
Tom ZellerTom ZellerReporter
Scott CantorScott CantorOriginal estimate
Components
Details
Details
Assignee

We're going to need a FlowExecutionRepository implementation to plug in to SWF that eliminates the requirement for objects stored in the view, flash, or conversation scopes to be Serializable.
Right now we're getting away with it because the conversation scope is implemented using sessions, which won't serialize until the container tries that. For other components, using view scope is more useful, but that immediately fails.