1
0
mirror of https://github.com/bitwarden/server.git synced 2024-12-05 14:23:30 +01:00
bitwarden-server/test/IntegrationTestCommon/FakeRemoteIpAddressMiddleware.cs

38 lines
1015 B
C#
Raw Normal View History

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<IApplicationBuilder> Configure(Action<IApplicationBuilder> next)
{
return app =>
{
app.UseMiddleware<FakeRemoteIpAddressMiddleware>();
next(app);
};
}
}