From e86fa273f2093089bec6379b6fa6b48625588a40 Mon Sep 17 00:00:00 2001 From: vnugent Date: Tue, 2 Jan 2024 02:33:18 -0500 Subject: breaking changes: plugin service pools & move plugin api away from web related --- .../src/AccountsEntryPoint.cs | 27 ++++++---------------- .../src/SecurityProvider/AccountSecProvider.cs | 7 ++++-- 2 files changed, 12 insertions(+), 22 deletions(-) (limited to 'plugins/VNLib.Plugins.Essentials.Accounts/src') diff --git a/plugins/VNLib.Plugins.Essentials.Accounts/src/AccountsEntryPoint.cs b/plugins/VNLib.Plugins.Essentials.Accounts/src/AccountsEntryPoint.cs index d875def..835718e 100644 --- a/plugins/VNLib.Plugins.Essentials.Accounts/src/AccountsEntryPoint.cs +++ b/plugins/VNLib.Plugins.Essentials.Accounts/src/AccountsEntryPoint.cs @@ -1,5 +1,5 @@ /* -* Copyright (c) 2023 Vaughn Nugent +* Copyright (c) 2024 Vaughn Nugent * * Library: VNLib * Package: VNLib.Plugins.Essentials.Accounts @@ -24,14 +24,12 @@ using System; using System.Text.Json; -using System.ComponentModel.Design; using FluentValidation.Results; using VNLib.Utils; using VNLib.Utils.Memory; using VNLib.Utils.Logging; -using VNLib.Plugins.Attributes; using VNLib.Plugins.Essentials.Users; using VNLib.Plugins.Essentials.Middleware; using VNLib.Plugins.Essentials.Accounts.MFA; @@ -51,21 +49,6 @@ namespace VNLib.Plugins.Essentials.Accounts private bool SetupMode => HostArgs.HasArgument("--account-setup"); - private AccountSecProvider? _securityProvider; - - [ServiceConfigurator] - public void ConfigureServices(IServiceContainer services) - { - //Export the built in security provider and add it as a middleware item as well - if (_securityProvider != null) - { - services.AddService(typeof(IAccountSecurityProvider), _securityProvider); - - //Export as middleware - services.AddService(typeof(IHttpMiddleware[]), new IHttpMiddleware[] { _securityProvider }); - } - } - protected override void OnLoad() { //Add optional endpoint routing @@ -104,8 +87,12 @@ namespace VNLib.Plugins.Essentials.Accounts //Only export the account security service if the configuration element is defined if (this.HasConfigForType()) { - //Inint the security provider - _securityProvider = this.GetOrCreateSingleton(); + //Inint the security provider and export it + AccountSecProvider securityProvider = this.GetOrCreateSingleton(); + this.ExportService(securityProvider); + + //Also add the middleware array + this.ExportService(new IHttpMiddleware[] { securityProvider }); Log.Information("Configuring the account security provider service"); } diff --git a/plugins/VNLib.Plugins.Essentials.Accounts/src/SecurityProvider/AccountSecProvider.cs b/plugins/VNLib.Plugins.Essentials.Accounts/src/SecurityProvider/AccountSecProvider.cs index 0d1a714..5a0e79d 100644 --- a/plugins/VNLib.Plugins.Essentials.Accounts/src/SecurityProvider/AccountSecProvider.cs +++ b/plugins/VNLib.Plugins.Essentials.Accounts/src/SecurityProvider/AccountSecProvider.cs @@ -1,5 +1,5 @@ /* -* Copyright (c) 2023 Vaughn Nugent +* Copyright (c) 2024 Vaughn Nugent * * Library: VNLib * Package: VNLib.Plugins.Essentials.Accounts @@ -316,7 +316,7 @@ namespace VNLib.Plugins.Essentials.Accounts.SecurityProvider finally { //Zero buffer when complete - MemoryUtil.InitializeBlock(buffer.Span); + MemoryUtil.InitializeBlock(ref buffer.GetReference(), buffer.GetIntLength()); } } @@ -573,6 +573,9 @@ namespace VNLib.Plugins.Essentials.Accounts.SecurityProvider return false; } + //Erase the signing key bytes + MemoryUtil.InitializeBlock(signingKey); + //Verify expiration using JsonDocument payload = jwt.GetPayload(); -- cgit