Authentication finalize action fails to overwrite previous active flow result
Basics
Logistics
Basics
Logistics
Description
Environment
None
Activity
Show:
Scott Cantor September 4, 2019 at 6:26 PM
Cherry-picked back to branch.
Scott Cantor June 10, 2019 at 12:35 PM
Fixed on master.
Fixed
Pinned fields
Click on the next to a field label to start pinning.
Created June 3, 2019 at 10:06 PM
Updated September 4, 2019 at 6:26 PM
Resolved June 10, 2019 at 12:35 PM
I noted during testing that the FinalizeAuthentication action dating back to its first version ever has a bug that manifests when you bypass SSO for a particular flow by marking it non-reusable. This causes the code to copy in the previously active result from the AuthenticationContext's active results collection, but it deliberately doesn't overwrite that with a fresh result that was just produced.
This doesn't matter much in practice, and it doesn't cause any problems if the identity actually changes, but it does create anomalous results if you're proxying authentication with richer attribute data, because it ends up using the previous set of attributes until the next request when it pulls the updated result out of the session and so on, so it's always off by one.
We discussed and think the impact is minor enough in that it really is just a kind of caching, of which we have a lot of similar examples in the system. Will fix now and backport if we do a patch.