Skip to content

Add CredentialRecordOwnerAuthorizationManager#19004

Merged
rwinch merged 1 commit intospring-projects:6.5.xfrom
rwinch:CredentialRecordOwnerAuthorizationManager
Mar 30, 2026
Merged

Add CredentialRecordOwnerAuthorizationManager#19004
rwinch merged 1 commit intospring-projects:6.5.xfrom
rwinch:CredentialRecordOwnerAuthorizationManager

Conversation

@rwinch
Copy link
Copy Markdown
Member

@rwinch rwinch commented Mar 30, 2026

No description provided.

Add CredentialRecordOwnerAuthorizationManager that verifies the
credential being deleted is owned by the currently authenticated user.
Also add an AuthorizationManager<Bytes> to WebAuthnRegistrationFilter
for the delete credential operation, defaulting to deny all, and wire it
up in WebAuthnConfigurer.

Per the WebAuthn specification [1], credential ids contain at least 16
bytes with at least 100 bits of entropy, making them practically
unguessable. The specification also advises that credential ids should
be kept private, as exposing them can leak personally identifying
information [2]. The CredentialRecordOwnerAuthorizationManager serves as
defense in depth: even if a credential id were somehow exposed, an
unauthorized user could not delete another user's credential.

[1] https://www.w3.org/TR/webauthn-3/#credential-id
[2] https://www.w3.org/TR/webauthn-3/#sctn-credential-id-privacy-leak
@rwinch rwinch added this to the 6.5.10 milestone Mar 30, 2026
@rwinch rwinch added type: enhancement A general enhancement in: webauthn WebAuthn and Passkeys labels Mar 30, 2026
@rwinch rwinch self-assigned this Mar 30, 2026
@rwinch rwinch enabled auto-merge March 30, 2026 03:31
@rwinch rwinch changed the title Merge CredentialRecordOwnerAuthorizationManager Add CredentialRecordOwnerAuthorizationManager Mar 30, 2026
@rwinch rwinch merged commit 5a4ada0 into spring-projects:6.5.x Mar 30, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

in: webauthn WebAuthn and Passkeys type: enhancement A general enhancement

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant