feat/Update_Controllers_to_Allow_for_Premium_Membership

This commit is contained in:
cesnimda
2026-08-03 09:17:28 +02:00
parent de937d25dc
commit c3f4a57195
187 changed files with 26062 additions and 991 deletions
@@ -0,0 +1,36 @@
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.HttpOverrides;
using Microsoft.Extensions.Configuration;
namespace JobTrackerApi.Services;
public static class ForwardedProxyConfiguration
{
public static ForwardedHeadersOptions Build(IConfiguration configuration)
{
var networks = (configuration.GetSection("Proxy:KnownNetworks").Get<string[]>() ?? Array.Empty<string>())
.Select(x => x?.Trim())
.Where(x => !string.IsNullOrEmpty(x))
.ToArray();
if (networks.Length == 0)
throw new InvalidOperationException("Proxy:KnownNetworks must contain the nginx proxy CIDR when forwarded headers are enabled.");
var options = new ForwardedHeadersOptions
{
ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto,
ForwardLimit = 1,
};
options.KnownNetworks.Clear();
options.KnownProxies.Clear();
foreach (var value in networks)
{
if (!IPNetwork.TryParse(value, out var network))
throw new InvalidOperationException($"Proxy:KnownNetworks contains an invalid CIDR: {value}");
options.KnownNetworks.Add(network);
}
return options;
}
}