Skip to content

Commit f234c23

Browse files
committed
fix(hosting): enable forwarded headers earlier
1 parent 396514b commit f234c23

2 files changed

Lines changed: 17 additions & 11 deletions

File tree

playground/Playground.Microservice.Api.Host/Program.cs

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@
206206
.ReportApiVersions()
207207
.Build());
208208

209-
root.MapGet("test", async (IServiceProvider _) =>
209+
root.MapGet("test", async (HttpContext context, IServiceProvider _) =>
210210
{
211211
//var dbContextFactory = serviceProvider.GetRequiredService<IDbContextFactory<SimpleDbContext>>();
212212
//await using var dbContext = await dbContextFactory.CreateDbContextAsync().ConfigureAwait(false);
@@ -230,7 +230,19 @@
230230
//var redisDatabase = redisMultiplexer.GetDatabase();
231231
//await redisDatabase.StringGetAsync("something");
232232
await Task.CompletedTask;
233-
throw new Exception("Failed");
233+
//throw new Exception("Failed");
234+
235+
236+
var clientIp = context.Connection.RemoteIpAddress?.ToString();
237+
var headers = context.Request.Headers;
238+
return Results.Ok(new
239+
{
240+
Message = "Test successful",
241+
ClientIp = clientIp,
242+
ForwardedFor = headers["X-Forwarded-For"].ToString(),
243+
ForwardedProto = headers["X-Forwarded-Proto"].ToString(),
244+
ForwardedHost = headers["X-Forwarded-Host"].ToString()
245+
});
234246
});
235247

236248
//app.IgniteHealthChecksUi();

src/ES.FX.Ignite/Hosting/IgniteHostingExtensions.cs

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,8 @@ public static IHost Ignite(this IHost host)
153153

154154
if (host is WebApplication app)
155155
{
156+
UseForwardedHeaders(app, settings.AspNetCore);
157+
156158
if (settings.AspNetCore.UseExceptionHandler)
157159
app.UseExceptionHandler();
158160

@@ -163,7 +165,6 @@ public static IHost Ignite(this IHost host)
163165
app.UseDeveloperExceptionPage();
164166

165167
UseStandardMiddleware(app, settings.AspNetCore);
166-
UseForwardedHeaders(app, settings.AspNetCore);
167168
UseHealthChecks(app, settings);
168169
}
169170

@@ -174,14 +175,7 @@ private static void UseForwardedHeaders(WebApplication app, AspNetCoreSettings s
174175
{
175176
if (!settings.ForwardedHeadersEnabled) return;
176177

177-
var forwardingOptions = new ForwardedHeadersOptions
178-
{
179-
RequireHeaderSymmetry = false,
180-
ForwardedHeaders = ForwardedHeaders.All,
181-
ForwardLimit = null
182-
};
183-
forwardingOptions.KnownProxies.Clear();
184-
app.UseForwardedHeaders(forwardingOptions);
178+
app.UseForwardedHeaders();
185179
}
186180

187181
private static void UseHealthChecks(WebApplication app, IgniteSettings settings)

0 commit comments

Comments
 (0)