mirror of
https://github.com/bitwarden/server.git
synced 2025-04-06 21:48:12 -05:00
Fix Duo Universal to work with transitional metadata (#4164)
This commit is contained in:
parent
308bd555a4
commit
fa4dc4aaf2
@ -55,7 +55,10 @@ public class TemporaryDuoWebV4SDKService : ITemporaryDuoWebV4SDKService
|
|||||||
{
|
{
|
||||||
if (!HasProperMetaData(provider))
|
if (!HasProperMetaData(provider))
|
||||||
{
|
{
|
||||||
return null;
|
if (!HasProperMetaData_SDKV2(provider))
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -82,7 +85,10 @@ public class TemporaryDuoWebV4SDKService : ITemporaryDuoWebV4SDKService
|
|||||||
{
|
{
|
||||||
if (!HasProperMetaData(provider))
|
if (!HasProperMetaData(provider))
|
||||||
{
|
{
|
||||||
return false;
|
if (!HasProperMetaData_SDKV2(provider))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var duoClient = await BuildDuoClientAsync(provider);
|
var duoClient = await BuildDuoClientAsync(provider);
|
||||||
@ -114,6 +120,29 @@ public class TemporaryDuoWebV4SDKService : ITemporaryDuoWebV4SDKService
|
|||||||
provider.MetaData.ContainsKey("ClientSecret") && provider.MetaData.ContainsKey("Host");
|
provider.MetaData.ContainsKey("ClientSecret") && provider.MetaData.ContainsKey("Host");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Checks if the metadata for SDK V2 is present.
|
||||||
|
/// Transitional method to support Duo during v4 database rename
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="provider">The TwoFactorProvider object to check.</param>
|
||||||
|
/// <returns>True if the provider has the proper metadata; otherwise, false.</returns>
|
||||||
|
private bool HasProperMetaData_SDKV2(TwoFactorProvider provider)
|
||||||
|
{
|
||||||
|
if (provider?.MetaData != null &&
|
||||||
|
provider.MetaData.TryGetValue("IKey", out var iKey) &&
|
||||||
|
provider.MetaData.TryGetValue("SKey", out var sKey) &&
|
||||||
|
provider.MetaData.ContainsKey("Host"))
|
||||||
|
{
|
||||||
|
provider.MetaData.Add("ClientId", iKey);
|
||||||
|
provider.MetaData.Add("ClientSecret", sKey);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Generates a Duo.Client object for use with Duo SDK v4. This combines the health check and the client generation
|
/// Generates a Duo.Client object for use with Duo SDK v4. This combines the health check and the client generation
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user