using System.Net; using Bit.IntegrationTestCommon.Factories; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; namespace Bit.IntegrationTestCommon; public class FakeRemoteIpAddressMiddleware { private readonly RequestDelegate _next; private readonly IPAddress _fakeIpAddress; public FakeRemoteIpAddressMiddleware(RequestDelegate next, IPAddress fakeIpAddress = null) { _next = next; _fakeIpAddress = fakeIpAddress ?? IPAddress.Parse(FactoryConstants.WhitelistedIp); } public async Task Invoke(HttpContext httpContext) { httpContext.Connection.RemoteIpAddress ??= _fakeIpAddress; await _next(httpContext); } } public class CustomStartupFilter : IStartupFilter { public Action Configure(Action next) { return app => { app.UseMiddleware(); next(app); }; } }