diff options
author | vnugent <public@vaughnnugent.com> | 2024-07-04 16:04:03 -0400 |
---|---|---|
committer | vnugent <public@vaughnnugent.com> | 2024-07-04 16:04:03 -0400 |
commit | 981ba286e4793de95bf65e6588313411344c4d53 (patch) | |
tree | a207743df2475e8579f3f25caca0a8075b42bf89 /lib/Plugins.Essentials/src/Sessions | |
parent | 6b8c67888731f7dd210acdb2b1160cdbdbe30d47 (diff) |
refactor: Refactor extensions with perf updates
Diffstat (limited to 'lib/Plugins.Essentials/src/Sessions')
-rw-r--r-- | lib/Plugins.Essentials/src/Sessions/ISessionExtensions.cs | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/lib/Plugins.Essentials/src/Sessions/ISessionExtensions.cs b/lib/Plugins.Essentials/src/Sessions/ISessionExtensions.cs index 05d6712..bff32e5 100644 --- a/lib/Plugins.Essentials/src/Sessions/ISessionExtensions.cs +++ b/lib/Plugins.Essentials/src/Sessions/ISessionExtensions.cs @@ -78,10 +78,26 @@ namespace VNLib.Plugins.Essentials.Sessions public static void InitNewSession(this ISession session, IConnectionInfo ci) { session.IsCrossOrigin(ci.CrossOrigin); - session.SetOrigin(ci.Origin?.ToString()); session.SetRefer(ci.Referer?.ToString()); session.SetSecurityProtocol(ci.GetSslProtocol()); session.SetUserAgent(ci.UserAgent); + + /* + * If no origin is specified, then we can use the authority of + * our current virtual host because it cannot be a cross-origin + * request. + */ + if(ci.Origin is null) + { + string scheme = ci.RequestUri.Scheme; + string authority = ci.RequestUri.Authority; + + session.SetOrigin($"{scheme}{authority}"); + } + else + { + session.SetOrigin(ci.Origin.ToString()); + } } } |