From e484f5478eee916c500a730cceb6cf448c959ce7 Mon Sep 17 00:00:00 2001 From: vnugent Date: Thu, 22 Jun 2023 21:13:35 -0400 Subject: Extensions async updates --- .../src/Endpoints/AccessTokenEndpoint.cs | 6 +++--- libs/VNLib.Plugins.Sessions.OAuth/src/OAuth2SessionProvider.cs | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) (limited to 'libs') diff --git a/libs/VNLib.Plugins.Sessions.OAuth/src/Endpoints/AccessTokenEndpoint.cs b/libs/VNLib.Plugins.Sessions.OAuth/src/Endpoints/AccessTokenEndpoint.cs index 2552d98..c4c5128 100644 --- a/libs/VNLib.Plugins.Sessions.OAuth/src/Endpoints/AccessTokenEndpoint.cs +++ b/libs/VNLib.Plugins.Sessions.OAuth/src/Endpoints/AccessTokenEndpoint.cs @@ -51,7 +51,7 @@ namespace VNLib.Plugins.Sessions.OAuth.Endpoints { private readonly IApplicationTokenFactory TokenFactory; private readonly ApplicationStore Applications; - private readonly Task JWTVerificationKey; + private readonly IAsyncLazy JWTVerificationKey; //override protection settings to allow most connections to authenticate /// @@ -73,7 +73,7 @@ namespace VNLib.Plugins.Sessions.OAuth.Endpoints Applications = new(pbase.GetContextOptions(), pbase.GetOrCreateSingleton()); //Try to get the application token key for verifying signed application JWTs - JWTVerificationKey = pbase.TryGetSecretAsync("application_token_key").ToJsonWebKey(); + JWTVerificationKey = pbase.TryGetSecretAsync("application_token_key").ToJsonWebKey().AsLazy(); } @@ -140,7 +140,7 @@ namespace VNLib.Plugins.Sessions.OAuth.Endpoints private UserApplication? GetApplicationFromJwt(string jwtData) { - ReadOnlyJsonWebKey? verificationKey = JWTVerificationKey.GetAwaiter().GetResult(); + ReadOnlyJsonWebKey? verificationKey = JWTVerificationKey.Value; //Not enabled if (verificationKey == null) diff --git a/libs/VNLib.Plugins.Sessions.OAuth/src/OAuth2SessionProvider.cs b/libs/VNLib.Plugins.Sessions.OAuth/src/OAuth2SessionProvider.cs index d099e3c..6e735d1 100644 --- a/libs/VNLib.Plugins.Sessions.OAuth/src/OAuth2SessionProvider.cs +++ b/libs/VNLib.Plugins.Sessions.OAuth/src/OAuth2SessionProvider.cs @@ -89,6 +89,7 @@ namespace VNLib.Plugins.Sessions.OAuth if (result.IsCompleted) { + //Safe to get result synchronously OAuth2Session? session = result.GetAwaiter().GetResult(); //Post process and get handle for session -- cgit