-
Notifications
You must be signed in to change notification settings - Fork 6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
PublicKeyCredentialUserEntityRepository saves anonymousUser
#16385
Comments
anonymousUser
in PublicKeyCredentialUserEntityRepository?anonymousUser
in PublicKeyCredentialUserEntityRepository
Hey @justincranford, thanks for reaching out! This is a known issue. We have merged the first milestone of passkey support, but there are still some rough edges. In this specific case, see Lines 336 to 337 in 9805648
If you'd like to submit a PR, please let me know. Otherwise, it's on my todo list and I'll eventually get to it. |
Thank you for the update. Could you clarify "first milestone of passkey support"? I don't know where to find that information. I am considering submitting a PR, but I have two other open WebAuthn issues that I would consider doing before this one. I would like to understand what are the known issues from the "first milestone of passkey support", and what work is planned for second milestone. It would be good to avoid duplicate work if it is underway for the next milestone. |
I mentioned "first milestone" loosely, I meant that we delivered the core configuration classes for webauthn, as well as support for the basic registration and authentication flows. However, there are some rough edges left. As you pointed out here and in the other two issues, there are also outstanding problems we need to fix, as well as feature requests we need to prioritize (account creation flow). Some of the rough edges we know about have a I'll come back to you about the roadmap. For information, at a minimum, JDBC implementations of the WebAuthn-related repositories will ship with 6.5 (gh-16224). Re: PRs you'd like to submit, I think both this issue and the serialization PR (gh-16328) do not require a lot of discussion or design work, and will be easier to get merged. I'd hold on the registration flow for now. |
anonymousUser
in PublicKeyCredentialUserEntityRepositoryanonymousUser
Thanks for the detailed report & sample application @justincranford! You are correct that saving of
NOTE: All of this logic might be best in a new method @justincranford If you are interested in creating a Pull Request, we'd love to get one! Please be sure create tests and to target the 6.4.x branch since this is a bug. |
@justincranford / others - if you would like to work on this issue please mention it on this issue first |
Asked in Stack Overflow a week ago.
https://stackoverflow.com/questions/79322876/why-does-spring-security-webauthn-authentication-save-anonymoususer-in-publick
Minimum Viable Example with Steps to Reproduce
I included a Minimum Reproducible Example with Steps in the Stack Overflow post.
App in GitHub: https://github.com/justincranford/spring-security-webauthn-demo
Spring versions used:
Expected behavior
Expected behavior is
anonymousUser
should not be persisted in PublicKeyCredentialUserEntityRepository.java.Said another way, expectation is WebAuthn functionality should only ever persist UserEntity and Credential, for authenticated users.
However, I see
anonymousUser
is persisted during WebAuthn Authentication. That seems like a bug.Or, if there is a valid reason for persisting
anonymousUser
, I would like to understand the design intent, so I can handle it securely and correctly.Logs
Logs from my wrapper of MapPublicKeyCredentialUserEntityRepository.java, to highlight what I see during WebAuthn Register and WebAuthn Authenticate.
WebAuthn Register
Notice user
u
was not found, then saved, then it was looked up again and found.Assumes user logged in at https://localhost:8443/ of my sample app with username=u and password=p, before attempting WebAuthn Register.
WebAuthn Authenticate
Notice user
anonymousUser
was not found, then saved, and then useru
was looked up and found. Useru
is the correct user saved during WebAuthn Register. It think the saving ofanonymousUser
is likely a bug.Assumes user logged out before attempting WebAuthn Authenticate at https://localhost:8443/ of my sample app.
The text was updated successfully, but these errors were encountered: