From f69c973f1c06cb3323a3d4794c39e37e2942f3ac Mon Sep 17 00:00:00 2001 From: Ivan Cvitkovic Date: Fri, 31 Jan 2025 11:51:13 -0800 Subject: [PATCH 1/5] Try loading logout URI from environment variable --- src/server/API/Options/StartupExtensions.Options.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/server/API/Options/StartupExtensions.Options.cs b/src/server/API/Options/StartupExtensions.Options.cs index 2b69d0de..2bcf7f06 100644 --- a/src/server/API/Options/StartupExtensions.Options.cs +++ b/src/server/API/Options/StartupExtensions.Options.cs @@ -490,7 +490,7 @@ static IServiceCollection ConfigureAuthenticationOptions(this IServiceCollection opts.SessionTimeoutMinutes = auth.SessionTimeoutMinutes; opts.InactiveTimeoutMinutes = auth.InactiveTimeoutMinutes; opts.Logout.Enabled = auth.Logout.Enabled; - opts.Logout.URI = auth.Logout.URI; + opts.Logout.URI = config.GetByProxy(auth.Logout.URI); }); switch (auth.Mechanism) From 85e69e70053cf676d496c5745a06f00bfd6c03c2 Mon Sep 17 00:00:00 2001 From: Ivan Cvitkovic Date: Fri, 31 Jan 2025 12:30:18 -0800 Subject: [PATCH 2/5] Assign logout URI to variable before using --- src/server/API/Options/StartupExtensions.Options.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/server/API/Options/StartupExtensions.Options.cs b/src/server/API/Options/StartupExtensions.Options.cs index 2bcf7f06..a800109d 100644 --- a/src/server/API/Options/StartupExtensions.Options.cs +++ b/src/server/API/Options/StartupExtensions.Options.cs @@ -483,6 +483,7 @@ static IServiceCollection ConfigureCompilerOptions(this IServiceCollection servi static IServiceCollection ConfigureAuthenticationOptions(this IServiceCollection services, IConfiguration config) { var auth = GetAuthenticationOptions(config); + var LogoutUri = config.GetByProxy(Config.Authentication.Logout.URI); services.Configure(opts => { @@ -490,7 +491,7 @@ static IServiceCollection ConfigureAuthenticationOptions(this IServiceCollection opts.SessionTimeoutMinutes = auth.SessionTimeoutMinutes; opts.InactiveTimeoutMinutes = auth.InactiveTimeoutMinutes; opts.Logout.Enabled = auth.Logout.Enabled; - opts.Logout.URI = config.GetByProxy(auth.Logout.URI); + opts.Logout.URI = LogoutUri; }); switch (auth.Mechanism) From bb732e2180f93907f9f37bc77096b9875f978ed9 Mon Sep 17 00:00:00 2001 From: Ivan Cvitkovic Date: Fri, 31 Jan 2025 12:56:22 -0800 Subject: [PATCH 3/5] Workaround URI checking --- src/server/API/Options/StartupExtensions.Options.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/server/API/Options/StartupExtensions.Options.cs b/src/server/API/Options/StartupExtensions.Options.cs index a800109d..67e983dd 100644 --- a/src/server/API/Options/StartupExtensions.Options.cs +++ b/src/server/API/Options/StartupExtensions.Options.cs @@ -548,6 +548,7 @@ static AuthenticationOptions GetAuthenticationOptions(IConfiguration config) auth.Logout.Enabled = config.GetValue(Config.Authentication.Logout.Enabled); if (auth.Logout.Enabled && !string.IsNullOrWhiteSpace(logout)) { + logout = config.GetByProxy(Config.Authentication.Logout.URI); auth.Logout.URI = new Uri(logout); } From f1e43e0008ead79e83016bc036cd469f4e599d7f Mon Sep 17 00:00:00 2001 From: Ivan Cvitkovic Date: Fri, 31 Jan 2025 13:29:38 -0800 Subject: [PATCH 4/5] Cast URI --- src/server/API/Options/StartupExtensions.Options.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/server/API/Options/StartupExtensions.Options.cs b/src/server/API/Options/StartupExtensions.Options.cs index 67e983dd..4fbfd954 100644 --- a/src/server/API/Options/StartupExtensions.Options.cs +++ b/src/server/API/Options/StartupExtensions.Options.cs @@ -491,7 +491,7 @@ static IServiceCollection ConfigureAuthenticationOptions(this IServiceCollection opts.SessionTimeoutMinutes = auth.SessionTimeoutMinutes; opts.InactiveTimeoutMinutes = auth.InactiveTimeoutMinutes; opts.Logout.Enabled = auth.Logout.Enabled; - opts.Logout.URI = LogoutUri; + opts.Logout.URI = new Uri(LogoutUri); }); switch (auth.Mechanism) From a851bfebd336aa3cb75595cb79a7c89ad8352fa7 Mon Sep 17 00:00:00 2001 From: Ivan Cvitkovic Date: Fri, 31 Jan 2025 15:07:07 -0800 Subject: [PATCH 5/5] Use env var convenience function --- src/server/API/Options/StartupExtensions.Options.cs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/server/API/Options/StartupExtensions.Options.cs b/src/server/API/Options/StartupExtensions.Options.cs index 4fbfd954..bc1d85bd 100644 --- a/src/server/API/Options/StartupExtensions.Options.cs +++ b/src/server/API/Options/StartupExtensions.Options.cs @@ -538,7 +538,7 @@ static AuthenticationOptions GetAuthenticationOptions(IConfiguration config) } auth.SessionTimeoutMinutes = session; - if (!config.TryGetValue(Config.Authentication.Logout.URI, out var logout)) + if (!config.TryGetByProxy(Config.Authentication.Logout.URI, out var logout)) { if (!auth.IsUnsecured) { @@ -548,7 +548,6 @@ static AuthenticationOptions GetAuthenticationOptions(IConfiguration config) auth.Logout.Enabled = config.GetValue(Config.Authentication.Logout.Enabled); if (auth.Logout.Enabled && !string.IsNullOrWhiteSpace(logout)) { - logout = config.GetByProxy(Config.Authentication.Logout.URI); auth.Logout.URI = new Uri(logout); }