From 7e44b56ec4112f5e131c7fb96838b18550a62c85 Mon Sep 17 00:00:00 2001 From: crupest Date: Mon, 21 Nov 2022 11:08:48 +0800 Subject: Fix #1354 #1355 . --- .../Timeline/Configs/ApplicationConfiguration.cs | 39 +++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) (limited to 'BackEnd/Timeline/Configs/ApplicationConfiguration.cs') diff --git a/BackEnd/Timeline/Configs/ApplicationConfiguration.cs b/BackEnd/Timeline/Configs/ApplicationConfiguration.cs index c7c679d1..c808e946 100644 --- a/BackEnd/Timeline/Configs/ApplicationConfiguration.cs +++ b/BackEnd/Timeline/Configs/ApplicationConfiguration.cs @@ -1,4 +1,8 @@ -namespace Timeline.Configs +using System; +using System.Collections.Generic; +using Microsoft.Extensions.Configuration; + +namespace Timeline.Configs { public static class ApplicationConfiguration { @@ -7,5 +11,38 @@ public const string DatabaseFileName = "timeline.db"; public const string DatabaseBackupDirectoryName = "backup"; public const string FrontEndKey = "FrontEnd"; + public const string DisableAutoBackupKey = "DisableAutoBackup"; + public const string EnableForwardedHeadersKey = "EnableForwardedHeaders"; + public const string ForwardedHeadersAllowedProxyHostsKey = "ForwardedHeadersAllowedProxyHosts"; + + public static bool CheckIsValidBoolString(string? value, string configPath, Boolean defaultValue) + { + if (value is null) + { + return defaultValue; + } + + var true_strings = new List { "true", "1", "y", "yes", "on" }; + var false_strings = new List { "false", "0", "n", "no", "off" }; + + if (true_strings.Contains(value.ToLowerInvariant())) + { + return true; + } + else if (false_strings.Contains(value.ToLowerInvariant())) + { + return false; + } + else + { + throw new Exception($"Invalid boolean value {value} in config {configPath}."); + } + } + + public static bool GetBoolConfig(IConfiguration configuration, string configPath, bool defaultValue) + { + var value = configuration.GetValue(configPath); + return CheckIsValidBoolString(value, configPath, defaultValue); + } } } -- cgit v1.2.3