From a8ddf89eace8d37ec8f7d61df960abaeab4b0f1f Mon Sep 17 00:00:00 2001 From: Pat Hartl Date: Mon, 6 Jan 2025 20:34:11 -0600 Subject: [PATCH] Add cookie policies to settings --- LANCommander.Server.Services/Models/Settings.cs | 3 +++ LANCommander.Server/Program.cs | 7 +++++++ .../UI/Pages/Settings/Authentication/Index.razor | 10 ++++++++++ 3 files changed, 20 insertions(+) diff --git a/LANCommander.Server.Services/Models/Settings.cs b/LANCommander.Server.Services/Models/Settings.cs index 6a8f864c..2b75de69 100644 --- a/LANCommander.Server.Services/Models/Settings.cs +++ b/LANCommander.Server.Services/Models/Settings.cs @@ -1,5 +1,6 @@ using LANCommander.Server.Data.Enums; using System.Text.RegularExpressions; +using Microsoft.AspNetCore.Http; namespace LANCommander.Server.Services.Models { @@ -74,6 +75,8 @@ namespace LANCommander.Server.Services.Models public bool PasswordRequireUppercase { get; set; } = false; public bool PasswordRequireDigit { get; set; } = true; public int PasswordRequiredLength { get; set; } = 8; + public SameSiteMode MinimumSameSitePolicy { get; set; } = SameSiteMode.Strict; + public CookieSecurePolicy CookieSecurePolicy { get; set; } = CookieSecurePolicy.Always; public IEnumerable AuthenticationProviders { get; set; } = new List(); } diff --git a/LANCommander.Server/Program.cs b/LANCommander.Server/Program.cs index fd81da9b..7d6792ab 100644 --- a/LANCommander.Server/Program.cs +++ b/LANCommander.Server/Program.cs @@ -191,6 +191,12 @@ namespace LANCommander.Server .AddSignInManager() .AddDefaultTokenProviders(); + builder.Services.Configure(options => + { + options.Secure = settings.Authentication.CookieSecurePolicy; + options.MinimumSameSitePolicy = settings.Authentication.MinimumSameSitePolicy; + }); + var authBuilder = builder.Services.AddAuthentication(options => { options.DefaultScheme = IdentityConstants.ApplicationScheme; @@ -416,6 +422,7 @@ namespace LANCommander.Server // app.UseHttpsRedirection(); + app.UseCookiePolicy(); app.UseRouting(); app.UseAuthentication(); diff --git a/LANCommander.Server/UI/Pages/Settings/Authentication/Index.razor b/LANCommander.Server/UI/Pages/Settings/Authentication/Index.razor index 5ed99c35..23925d80 100644 --- a/LANCommander.Server/UI/Pages/Settings/Authentication/Index.razor +++ b/LANCommander.Server/UI/Pages/Settings/Authentication/Index.razor @@ -42,6 +42,16 @@ + + + + + + + + + +