forked from forgejo/forgejo
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>
This commit is contained in:
parent
6e423d5573
commit
044cd4d016
20 changed files with 464 additions and 2 deletions
46
vendor/github.com/chi-middleware/proxy/README.md
generated
vendored
Normal file
46
vendor/github.com/chi-middleware/proxy/README.md
generated
vendored
Normal file
|
@ -0,0 +1,46 @@
|
|||
# [Chi](https://github.com/go-chi/chi) proxy middleware
|
||||
|
||||
Forwarded headers middleware to use if application is run behind reverse proxy.
|
||||
|
||||
[](https://pkg.go.dev/github.com/chi-middleware/proxy)
|
||||
[](https://codecov.io/gh/chi-middleware/proxy)
|
||||
[](https://goreportcard.com/report/github.com/chi-middleware/proxy)
|
||||
[](https://cloud.drone.io/chi-middleware/proxy)
|
||||
|
||||
## Usage
|
||||
|
||||
Import using:
|
||||
|
||||
```go
|
||||
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):
|
||||
|
||||
```go
|
||||
r := chi.NewRouter()
|
||||
r.Use(proxy.ForwardedHeaders())
|
||||
```
|
||||
|
||||
Extend default options:
|
||||
|
||||
```go
|
||||
r := chi.NewRouter()
|
||||
r.Use(proxy.ForwardedHeaders(
|
||||
proxy.NewForwardedHeadersOptions().
|
||||
WithForwardLimit(2).
|
||||
ClearTrustedProxies().AddTrustedProxy("10.0.0.1"),
|
||||
))
|
||||
```
|
||||
|
||||
Provide custom options:
|
||||
|
||||
```go
|
||||
r := chi.NewRouter()
|
||||
r.Use(proxy.ForwardedHeaders(&ForwardedHeadersOptions{
|
||||
ForwardLimit: 1,
|
||||
TrustedProxies: []net.IP{
|
||||
net.IPv4(10, 0, 0, 1),
|
||||
},
|
||||
}))
|
||||
```
|
Loading…
Add table
Add a link
Reference in a new issue