Skip to content

jlnovais/JN.IpFilter

Repository files navigation

License: MIT Nuget Codacy Badge Build Status .NET Core

JN.IpFilter

Simple IP Filter for ASP.NET Core.

Provides an IP Filter for paths exposed by the application using list of valid (allowed) IP addresses for each path.

If access is not allowed, an HTTP Forbidden (403) status code is returned, but this can be overridden (in options object - ResponseHttpStatusCode field).

More details available on the project website

Install

Download the package from NuGet:

Install-Package JN.IpFilter -Version [version number]

Usage

Use the UseIpFilter extension method to add the middleware inside the Configure method on the Startup class.

The UseIpFilter extension method needs a list of filters and an options object that can be read from configuration.

Important:

  • The $remoteIp$ tag can be used in ResponseContent field to show the remote IP that is executing the request;
  • The value * means that any IP address is allowed.

Example

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{

    // (...)

    var filters = Configuration.GetIpFilters("IpFilters");
    var options = Configuration.GetIpFilterOptions("IpFilterMiddlewareOptions");

    app.UseIpFilter(filters, options);

    // (...)
}

filters and options can be read from configuration:

{

  "IpFilterMiddlewareOptions": {
    "ExactPathMatch": false,
    "LogRequests": true,
    "ApplyOnlyToHttpMethod": "", 
    "ResponseHttpStatusCode": 401,
    "ResponseContentType": "application/json",
    "ResponseContent": "{\"ip:\": \"$remoteIp$\", \"Description\": \"Error!!\" }"
  },

  "IpFilters": [
    {
      "Path": "/MyController",
      "IpList": "1.1.1.1;::1"
    },
    {
      "Path": "/MyController2",
      "IpList": "*"
    },
    {
      "Path": "/MyController3",
      "IpList": "2.2.2.2"
    }
  ],
}

About

IP Filter for ASP.NET Core. Provides an IP Filter for paths exposed by the application using a white list of valid IP addresses for each path.

Topics

Resources

License

Stars

1 star

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages