[Security] set configured claim as userIdentifier on OidcUser using OidcUserInfoTokenHandler #52625
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
As I was trying to use the
oidc_user_info
token handler with a customclaim
setting, I noticed (debugged) that the specified claim is only set on theUserBadge
, but not on the actualOidcUser
object. The latter gets the original$claims
array as the constructor parameters through the\Symfony\Component\Security\Http\AccessToken\Oidc\OidcTrait::createUser
, that's why the selected claim does not get set currently.This patch does solve this case.
I.e. using this example from the doc does not set the
email
claim asOidcUser::userIdentifier
, that property will never be set.Please let me know if it's not the intended way to set up the user class.
If this is should be the correct flow (as I assume), I'm willing to cover it with tests in this PR.