gitea/vendor/github.com/chi-middleware/proxy
Lauris BH 044cd4d016
Add reverse proxy configuration support for remote IP address (#14959)
* Add reverse proxy configuration support for remote IP address validation

* Trust all IP addresses in containerized environments by default

* Use single option to specify networks and proxy IP addresses. By default trust all loopback IPs

Co-authored-by: techknowlogick <techknowlogick@gitea.io>
2021-03-16 00:27:28 +02:00
..
.drone.yml Add reverse proxy configuration support for remote IP address (#14959) 2021-03-16 00:27:28 +02:00
.gitignore Add reverse proxy configuration support for remote IP address (#14959) 2021-03-16 00:27:28 +02:00
.golangci.yml Add reverse proxy configuration support for remote IP address (#14959) 2021-03-16 00:27:28 +02:00
.revive.toml Add reverse proxy configuration support for remote IP address (#14959) 2021-03-16 00:27:28 +02:00
LICENSE Add reverse proxy configuration support for remote IP address (#14959) 2021-03-16 00:27:28 +02:00
Makefile Add reverse proxy configuration support for remote IP address (#14959) 2021-03-16 00:27:28 +02:00
README.md Add reverse proxy configuration support for remote IP address (#14959) 2021-03-16 00:27:28 +02:00
go.mod Add reverse proxy configuration support for remote IP address (#14959) 2021-03-16 00:27:28 +02:00
go.sum Add reverse proxy configuration support for remote IP address (#14959) 2021-03-16 00:27:28 +02:00
middleware.go Add reverse proxy configuration support for remote IP address (#14959) 2021-03-16 00:27:28 +02:00
options.go Add reverse proxy configuration support for remote IP address (#14959) 2021-03-16 00:27:28 +02:00

README.md

Chi proxy middleware

Forwarded headers middleware to use if application is run behind reverse proxy.

Documentation codecov Go Report Card Build Status

Usage

Import using:

import "github.com/chi-middleware/proxy"

Use middleware with default options (trusted from proxy 127.0.0.1 and trusts only last IP address provided in header):

    r := chi.NewRouter()
    r.Use(proxy.ForwardedHeaders())

Extend default options:

    r := chi.NewRouter()
    r.Use(proxy.ForwardedHeaders(
        proxy.NewForwardedHeadersOptions().
            WithForwardLimit(2).
            ClearTrustedProxies().AddTrustedProxy("10.0.0.1"),
    ))

Provide custom options:

    r := chi.NewRouter()
    r.Use(proxy.ForwardedHeaders(&ForwardedHeadersOptions{
        ForwardLimit: 1,
        TrustedProxies: []net.IP{
            net.IPv4(10, 0, 0, 1),
        },
    }))