Get all code flow credentials visible to SecurityIdentityAugmentors #19548
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.
A problem to do with
AccessTokenCredential
not visible to customSecurityIdentityAugmentor
s for OIDCweb-app
applications was reported on Zulip (note they are all visible to the endpoint code).In the code flow, the primary
IdTokenCredential
only used to be set byQuarkusIdentityProvider
withCodeAuthenticationMechanism
addingAccessTokenCredential
and alsoRefreshToken
- but it is done as a follow up afterIdentityProviderManager
has completed theSecurityIdentity
construction withSecurityIdentityAugmentor
s already being checked.So this PR simply adds all the credentials at the same time,
IdTokenCredential
plusAccessTokenCredential
and alsoRefreshToken
as part of the IdentityProvider flow (thus making them all visible to the augmentors as well) and removes the unnecessary code to do with the identity augmentation fromCodeAuthenticationMechanism
- saves on the identity copy, as apart from addingAccessTokenCredential
/RefreshToken
a bit late it also adds a permission checker - because it could not copy them from the existing one - which is not needed now.@stuartwdouglas I'll rebase it once your PR goes in :-)