From 1872dfd0f75ad91a8d859b98dcc7e806c21d4a49 Mon Sep 17 00:00:00 2001 From: colin Date: Sat, 18 Jul 2026 17:08:33 +0800 Subject: [PATCH] feat: Add custom proxy configuration --- .../AbpAspNetCoreHttpOverridesModule.cs | 30 ++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/aspnet-core/framework/common/LINGYUN.Abp.AspNetCore.HttpOverrides/LINGYUN/Abp/AspNetCore/HttpOverrides/AbpAspNetCoreHttpOverridesModule.cs b/aspnet-core/framework/common/LINGYUN.Abp.AspNetCore.HttpOverrides/LINGYUN/Abp/AspNetCore/HttpOverrides/AbpAspNetCoreHttpOverridesModule.cs index 4f16e761c..38f25aaf2 100644 --- a/aspnet-core/framework/common/LINGYUN.Abp.AspNetCore.HttpOverrides/LINGYUN/Abp/AspNetCore/HttpOverrides/AbpAspNetCoreHttpOverridesModule.cs +++ b/aspnet-core/framework/common/LINGYUN.Abp.AspNetCore.HttpOverrides/LINGYUN/Abp/AspNetCore/HttpOverrides/AbpAspNetCoreHttpOverridesModule.cs @@ -4,6 +4,7 @@ using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; using System.Collections.Generic; +using System.Net; using Volo.Abp.AspNetCore; using Volo.Abp.AspNetCore.WebClientInfo; using Volo.Abp.Modularity; @@ -19,7 +20,34 @@ public class AbpAspNetCoreHttpOverridesModule : AbpModule Configure(options => { - configuration.GetSection("Forwarded").Bind(options); + var forwardedConfig = configuration.GetSection("Forwarded"); + forwardedConfig.Bind(options); + + options.KnownProxies.Clear(); + var knownProxies = configuration.GetSection("Forwarded:KnownProxies").Get>(); + if (knownProxies?.Count > 0) + { + foreach (var knownProxy in knownProxies) + { + if (IPAddress.TryParse(knownProxy, out var iPAddress)) + { + options.KnownProxies.Add(iPAddress); + } + } + } + + options.KnownIPNetworks.Clear(); + var knownIPNetworks = configuration.GetSection("Forwarded:KnownIPNetworks").Get>(); + if (knownProxies?.Count > 0) + { + foreach (var knownIPNetwork in knownIPNetworks) + { + if (IPNetwork.TryParse(knownIPNetwork, out var iPNetwork)) + { + options.KnownIPNetworks.Add(iPNetwork); + } + } + } }); context.Services.Replace(ServiceDescriptor.Transient());