diff options
author | vnugent <public@vaughnnugent.com> | 2023-06-22 21:13:35 -0400 |
---|---|---|
committer | vnugent <public@vaughnnugent.com> | 2023-06-22 21:13:35 -0400 |
commit | e1c1c679abdf482733ba601ee54f01bdfa79ddda (patch) | |
tree | 183a06af17e598b9ada1c138e468b1e74ac346d4 /plugins/VNLib.Plugins.Essentials.SocialOauth/src/OauthClientConfig.cs | |
parent | 765d3d328af49f92f1d0b296bfba2d7791e0cdf5 (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.cs | 33 |
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> |