From 84f81db6ec729e24e2818557564e7da92259be43 Mon Sep 17 00:00:00 2001 From: vnugent Date: Sat, 20 Apr 2024 12:13:04 -0400 Subject: Squashed commit of the following: commit f70c94e948aa41e90d99f187d8a4791a726bc681 Author: vnugent Date: Sat Apr 20 00:48:49 2024 -0400 fix: Missing session detach flag on close commit 2a2078b8cc3dd216c46419bce7577ae572317955 Author: vnugent Date: Mon Apr 15 16:22:38 2024 -0400 fix: fixed bearer token header requirments from crashing --- libs/VNLib.Plugins.Sessions.Cache.Client/src/RemoteSession.cs | 1 + libs/VNLib.Plugins.Sessions.OAuth/src/OAuth2TokenFactory.cs | 10 +++++++--- libs/VNLib.Plugins.Sessions.VNCache/src/WebSession.cs | 7 ++----- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/libs/VNLib.Plugins.Sessions.Cache.Client/src/RemoteSession.cs b/libs/VNLib.Plugins.Sessions.Cache.Client/src/RemoteSession.cs index 421d07d..5f4d614 100644 --- a/libs/VNLib.Plugins.Sessions.Cache.Client/src/RemoteSession.cs +++ b/libs/VNLib.Plugins.Sessions.Cache.Client/src/RemoteSession.cs @@ -112,6 +112,7 @@ namespace VNLib.Plugins.Sessions.Cache.Client status |= Flags.IsSet(INVALID_MSK) ? SessionStatus.Delete : SessionStatus.None; status |= Flags.IsSet(REGEN_ID_MSK) ? SessionStatus.RegenId : SessionStatus.None; status |= Flags.IsSet(MODIFIED_MSK) ? SessionStatus.UpdateOnly: SessionStatus.None; + status |= Flags.IsSet(DETACHED_MSK) ? SessionStatus.Detach: SessionStatus.None; return status; } diff --git a/libs/VNLib.Plugins.Sessions.OAuth/src/OAuth2TokenFactory.cs b/libs/VNLib.Plugins.Sessions.OAuth/src/OAuth2TokenFactory.cs index 6d055df..e3588ab 100644 --- a/libs/VNLib.Plugins.Sessions.OAuth/src/OAuth2TokenFactory.cs +++ b/libs/VNLib.Plugins.Sessions.OAuth/src/OAuth2TokenFactory.cs @@ -104,9 +104,13 @@ namespace VNLib.Plugins.Sessions.OAuth { int bearerIndex = authorization.IndexOf(_config.TokenType, StringComparison.OrdinalIgnoreCase); - //Calc token offset, get token, and trim any whitespace - token = authorization.AsSpan(bearerIndex + _config.TokenType.Length).Trim().ToString(); - return true; + //Check if the token type is present + if (bearerIndex >= 0) + { + //Calc token offset, get token, and trim any whitespace + token = authorization.AsSpan(bearerIndex + _config.TokenType.Length).Trim().ToString(); + return true; + } } token = null; diff --git a/libs/VNLib.Plugins.Sessions.VNCache/src/WebSession.cs b/libs/VNLib.Plugins.Sessions.VNCache/src/WebSession.cs index 7ab4cbe..8cdf73b 100644 --- a/libs/VNLib.Plugins.Sessions.VNCache/src/WebSession.cs +++ b/libs/VNLib.Plugins.Sessions.VNCache/src/WebSession.cs @@ -33,12 +33,9 @@ using VNLib.Plugins.Sessions.Cache.Client; namespace VNLib.Plugins.Sessions.VNCache { - internal class WebSession : RemoteSession + internal class WebSession(string sessionId, IDictionary sessionData, bool isNew) + : RemoteSession(sessionId, sessionData, isNew) { - public WebSession(string sessionId, IDictionary sessionData, bool isNew) - : base(sessionId, sessionData, isNew) - {} - internal void InitNewSession(IHttpEvent entity) { SessionType = SessionType.Web; -- cgit