Handle Fido2VerificationException during credential creation #3873
+48
−16
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.
Type of change
Objective
In #3615 we handled the
Fido2VerificationException
when asserting a WebAuthn credential for 2FA.In this PR, we address the
MakeNewCredentialAsync
methods similarly, as well as theMakeAssertionAsync
when asserting a WebAuthn credential for login, which was missed in #3615 .📓 We have https://bitwarden.atlassian.net/browse/PM-4172 in the backlog to consolidate the implementations, at which point we should consider an abstraction.
Code changes
BadRequestException
instead of the unhandled exception returned previously. This will be handled on the client, as it is the pattern already established in the class for communicating assertion errors.false
along with a log message. I did this instead of throwing aBadRequestException
as this is the pattern already established in this command for handling invalid data. I added a log here as returningfalse
gives no indication of the root cause.false
along with a log message. I did this instead of throwing aBadRequestException
as this is the pattern already established in this command for handling invalid data. I added a log here as returningfalse
gives no indication of the root cause.Before you submit
dotnet format --verify-no-changes
) (required)