Make a foundation for multi-factor(step) authentication including WebAuthn #5665
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.
This patch is to make a foundation for multi-factor(step) authentication including WebAuthn (#5238).
Changes
* no interface is changed
MultifactorAuthenticationToken
to represent a user in the middle of multi factor(step) authentication processMFATokenEvaluator
/MFATokenEvaluatorImpl
forAuthentication
type checkExceptionTranslationFilter
,AuthenticationTrustResolverImpl
, andHttpSessionSecurityContextRepository
useMFATokenEvaluator
to support multi-factor authenticationMultiFactorAuthenticationProvider
, which authenticates a user by delegating to anotherAuthenticationProvider
and generatesMultifactorAuthenticationToken
spring-security-webauthn is a concrete user facing code using this patch.
If possible, I'd like to send whole spring-security-webauthn as a pull-request to spring-security now, but
I understand the spring's backward compatibility policy, WebAuthn specification is still updated after the declaration of Candidate Recomendation phase, and browser implementation is still on going. It is not the time.
Meanwhile, spring-security-webauthn requires user feedbacks, and patching to spring-security core is a big roadblocks for users to try spring-security-webauthn.
I extracted minimal changes to spring-security core into this patch. and I suppose future changes to WebAuthn specification will not affect this.