Enhances request header logging.
All checks were successful
Build, Push and Run Container / build (push) Successful in 24s
All checks were successful
Build, Push and Run Container / build (push) Successful in 24s
Adds detailed logging of request headers for debugging purposes. Clears known networks and proxies in forwarded headers options. This change improves the ability to diagnose issues related to request handling and forwarding in different environments.
This commit is contained in:
@@ -95,7 +95,10 @@ builder.Services.AddHostedService<MQTTClient>();
|
||||
//Build app
|
||||
WebApplication app = builder.Build();
|
||||
|
||||
app.UseForwardedHeaders(new ForwardedHeadersOptions() { ForwardedHeaders = ForwardedHeaders.All });
|
||||
ForwardedHeadersOptions forwardedHeadersOptions = new ForwardedHeadersOptions() { ForwardedHeaders = ForwardedHeaders.All };
|
||||
forwardedHeadersOptions.KnownNetworks.Clear();
|
||||
forwardedHeadersOptions.KnownProxies.Clear();
|
||||
app.UseForwardedHeaders(forwardedHeadersOptions);
|
||||
|
||||
if (app.Environment.IsDevelopment())
|
||||
{
|
||||
@@ -141,7 +144,41 @@ if (app.Environment.IsDevelopment())
|
||||
var ctx = httpContextAccessor.HttpContext!;
|
||||
var request = ctx.Request;
|
||||
|
||||
return $"{request.Scheme}://{request.Host}/token-exchange";
|
||||
Dictionary<string, string> headers = new Dictionary<string, string>();
|
||||
headers.Add("Host", request.Host.Value ?? "");
|
||||
headers.Add("Scheme", request.Scheme);
|
||||
headers.Add("Method", request.Method);
|
||||
headers.Add("Path", request.Path.Value ?? "");
|
||||
headers.Add("QueryString", request.QueryString.Value ?? "");
|
||||
headers.Add("RemoteIpAddress", ctx.Connection.RemoteIpAddress?.ToString() ?? "");
|
||||
headers.Add("RemotePort", ctx.Connection.RemotePort.ToString());
|
||||
headers.Add("LocalIpAddress", ctx.Connection.LocalIpAddress?.ToString() ?? "");
|
||||
headers.Add("LocalPort", ctx.Connection.LocalPort.ToString());
|
||||
headers.Add("IsHttps", request.IsHttps.ToString());
|
||||
headers.Add("X-Forwarded-For", request.Headers["X-Forwarded-For"].ToString());
|
||||
headers.Add("X-Forwarded-Proto", request.Headers["X-Forwarded-Proto"].ToString());
|
||||
headers.Add("X-Forwarded-Host", request.Headers["X-Forwarded-Host"].ToString());
|
||||
headers.Add("X-Forwarded-Port", request.Headers["X-Forwarded-Port"].ToString());
|
||||
headers.Add("X-Forwarded-Prefix", request.Headers["X-Forwarded-Prefix"].ToString());
|
||||
headers.Add("X-Forwarded-Server", request.Headers["X-Forwarded-Server"].ToString());
|
||||
headers.Add("X-Forwarded-Path", request.Headers["X-Forwarded-Path"].ToString());
|
||||
headers.Add("X-Forwarded-PathBase", request.Headers["X-Forwarded-PathBase"].ToString());
|
||||
headers.Add("X-Forwarded-Query", request.Headers["X-Forwarded-Query"].ToString());
|
||||
headers.Add("X-Forwarded-Query-String", request.Headers["X-Forwarded-Query-String"].ToString());
|
||||
headers.Add("Connection", request.Headers["Connection"].ToString());
|
||||
headers.Add("Accept", request.Headers["Accept"].ToString());
|
||||
headers.Add("Accept-Encoding", request.Headers["Accept-Encoding"].ToString());
|
||||
headers.Add("Accept-Language", request.Headers["Accept-Language"].ToString());
|
||||
headers.Add("Cache-Control", request.Headers["Cache-Control"].ToString());
|
||||
headers.Add("Content-Length", request.Headers["Content-Length"].ToString());
|
||||
headers.Add("Content-Type", request.Headers["Content-Type"].ToString());
|
||||
headers.Add("Cookie", request.Headers["Cookie"].ToString());
|
||||
headers.Add("Pragma", request.Headers["Pragma"].ToString());
|
||||
headers.Add("Referer", request.Headers["Referer"].ToString());
|
||||
|
||||
String json = JsonSerializer.Serialize(headers, new JsonSerializerOptions() { WriteIndented = true });
|
||||
|
||||
return json;
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user