Looks like #16 references this issue, but the "fix" doesn't appear to actually be a fix. I think there's a real bug present when a user needs to be re-authenticated.
My user class implements EquatableInterface and I have a method isEqualTo which determines if the serialized User object is the same as the refreshed User object. The behavior of comparing these two objects is described towards the bottom of this Cookbook page.
When the user has indeed changed, like a new role being added, my isEqualTo method properly returns false. However, I then get the following exception:
FatalErrorException: Error: Call to a member function validateCredentials() on a non-object in /Users/bkosborne/Sites/test/vendor/besimple/sso-auth-bundle/BeSimple/SsoAuthBundle/Security/Core/Authentication/Provider/SsoAuthenticationProvider.php line 78
Looks like the $token that's passed to authenticate on SsoAuthenticationProvider does not have its $manager property set. Not sure why, I've been struggling to understand the complexities of the Security component for a few days now.
Looks like #16 references this issue, but the "fix" doesn't appear to actually be a fix. I think there's a real bug present when a user needs to be re-authenticated.
My user class implements
EquatableInterfaceand I have a methodisEqualTowhich determines if the serializedUserobject is the same as the refreshedUserobject. The behavior of comparing these two objects is described towards the bottom of this Cookbook page.When the user has indeed changed, like a new role being added, my
isEqualTomethod properly returns false. However, I then get the following exception:Looks like the
$tokenthat's passed toauthenticateonSsoAuthenticationProviderdoes not have its$managerproperty set. Not sure why, I've been struggling to understand the complexities of the Security component for a few days now.