aboutsummaryrefslogtreecommitdiff
path: root/plugins/VNLib.Plugins.Essentials.SocialOauth/src/OauthClientConfig.cs
diff options
context:
space:
mode:
authorLibravatar vnugent <public@vaughnnugent.com>2023-06-22 21:13:35 -0400
committerLibravatar vnugent <public@vaughnnugent.com>2023-06-22 21:13:35 -0400
commite1c1c679abdf482733ba601ee54f01bdfa79ddda (patch)
tree183a06af17e598b9ada1c138e468b1e74ac346d4 /plugins/VNLib.Plugins.Essentials.SocialOauth/src/OauthClientConfig.cs
parent765d3d328af49f92f1d0b296bfba2d7791e0cdf5 (diff)
Extensions async updates
Diffstat (limited to 'plugins/VNLib.Plugins.Essentials.SocialOauth/src/OauthClientConfig.cs')
-rw-r--r--plugins/VNLib.Plugins.Essentials.SocialOauth/src/OauthClientConfig.cs33
1 files changed, 15 insertions, 18 deletions
diff --git a/plugins/VNLib.Plugins.Essentials.SocialOauth/src/OauthClientConfig.cs b/plugins/VNLib.Plugins.Essentials.SocialOauth/src/OauthClientConfig.cs
index b7e94a2..e7e81d6 100644
--- a/plugins/VNLib.Plugins.Essentials.SocialOauth/src/OauthClientConfig.cs
+++ b/plugins/VNLib.Plugins.Essentials.SocialOauth/src/OauthClientConfig.cs
@@ -23,7 +23,6 @@
*/
using System;
-using System.Threading.Tasks;
using System.Collections.Generic;
using VNLib.Utils.Extensions;
@@ -35,7 +34,7 @@ using VNLib.Plugins.Extensions.Loading.Users;
namespace VNLib.Plugins.Essentials.SocialOauth
{
- public sealed class OauthClientConfig : IAsyncConfigurable
+ public sealed class OauthClientConfig
{
private readonly string ConfigName;
@@ -67,27 +66,24 @@ namespace VNLib.Plugins.Essentials.SocialOauth
Users = plugin.GetOrCreateSingleton<UserManager>();
Passwords = plugin.GetOrCreateSingleton<ManagedPasswordHashing>();
- }
-
- public async Task ConfigureServiceAsync(PluginBase plugin)
- {
- //Get id/secret
- Task<SecretResult?> clientIdTask = plugin.TryGetSecretAsync($"{ConfigName}_client_id");
- Task<SecretResult?> secretTask = plugin.TryGetSecretAsync($"{ConfigName}_client_secret");
- await Task.WhenAll(secretTask, clientIdTask);
+ //Setup async lazy loaders for secrets
+ ClientID = plugin.GetSecretAsync($"{ConfigName}_client_id")
+ .ToLazy(static r => r.Result.ToString());
- using SecretResult? secret = await secretTask;
- using SecretResult? clientId = await clientIdTask;
-
- ClientID = clientId?.Result.ToString() ?? throw new KeyNotFoundException($"Missing {ConfigName} client id from config or vault");
- ClientSecret = secret?.Result.ToString() ?? throw new KeyNotFoundException($"Missing the {ConfigName} client secret from config or vault");
+ ClientSecret = plugin.GetSecretAsync($"{ConfigName}_client_secret")
+ .ToLazy(static r => r.Result.ToString());
}
-
- public string ClientID { get; private set; } = string.Empty;
+ /// <summary>
+ /// The client ID for the OAuth2 service
+ /// </summary>
+ public IAsyncLazy<string> ClientID { get; }
- public string ClientSecret { get; private set; } = string.Empty;
+ /// <summary>
+ /// The client secret for the OAuth2 service
+ /// </summary>
+ public IAsyncLazy<string> ClientSecret { get; }
/// <summary>
@@ -113,6 +109,7 @@ namespace VNLib.Plugins.Essentials.SocialOauth
public Uri UserDataUrl { get; }
public TimeSpan LoginNonceLifetime { get; }
+
/// <summary>
/// The user store to create/get users from
/// </summary>