1
0
mirror of https://github.com/bitwarden/server synced 2026-02-11 14:03:24 +00:00

[PM-31212] Change hardcoded 5 key WebAuthn limit for login to check if premium (#6894)

* removed hardcoded limit so login would look at more than first 5 keys registered

* Update src/Core/Auth/Identity/TokenProviders/WebAuthnTokenProvider.cs

Co-authored-by: Dave <3836813+enmande@users.noreply.github.com>

* Update src/Core/Auth/Identity/TokenProviders/WebAuthnTokenProvider.cs

Co-authored-by: Dave <3836813+enmande@users.noreply.github.com>

* Update src/Core/Auth/Identity/TokenProviders/WebAuthnTokenProvider.cs

Co-authored-by: Dave <3836813+enmande@users.noreply.github.com>

* Update src/Core/Auth/Identity/TokenProviders/WebAuthnTokenProvider.cs

Co-authored-by: Dave <3836813+enmande@users.noreply.github.com>

* removed orphaned for loop in favor of more robust and efficient foreach loop

---------

Co-authored-by: Dave <3836813+enmande@users.noreply.github.com>
This commit is contained in:
Jacob Olness
2026-02-03 09:12:18 -07:00
committed by GitHub
parent 4f4ccac2de
commit b7923f5498

View File

@@ -147,16 +147,12 @@ public class WebAuthnTokenProvider : IUserTwoFactorTokenProvider<User>
return keys;
}
// Support up to 5 keys
for (var i = 1; i <= 5; i++)
// Load all WebAuthn credentials stored in metadata. The number of allowed credentials
// is controlled by credential registration.
foreach (var kvp in provider.MetaData.Where(k => k.Key.StartsWith("Key")))
{
var keyName = $"Key{i}";
if (provider.MetaData.TryGetValue(keyName, out var value))
{
var key = new TwoFactorProvider.WebAuthnData((dynamic)value);
keys.Add(new Tuple<string, TwoFactorProvider.WebAuthnData>(keyName, key));
}
var key = new TwoFactorProvider.WebAuthnData((dynamic)kvp.Value);
keys.Add(new Tuple<string, TwoFactorProvider.WebAuthnData>(kvp.Key, key));
}
return keys;