* 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> |
||
|---|---|---|
| .. | ||
| .drone.yml | ||
| .gitignore | ||
| .golangci.yml | ||
| .revive.toml | ||
| go.mod | ||
| go.sum | ||
| LICENSE | ||
| Makefile | ||
| middleware.go | ||
| options.go | ||
| README.md | ||
Chi proxy middleware
Forwarded headers middleware to use if application is run behind reverse proxy.
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),
},
}))