mirror of
https://github.com/yusing/godoxy.git
synced 2025-05-20 12:42:34 +02:00
28 lines
549 B
Go
28 lines
549 B
Go
package middleware
|
|
|
|
import (
|
|
"net"
|
|
"strings"
|
|
|
|
gphttp "github.com/yusing/go-proxy/internal/net/http"
|
|
)
|
|
|
|
var SetXForwarded = &Middleware{
|
|
before: Rewrite(func(req *Request) {
|
|
req.Header.Del(gphttp.HeaderXForwardedFor)
|
|
clientIP, _, err := net.SplitHostPort(req.RemoteAddr)
|
|
if err == nil {
|
|
req.Header.Set(gphttp.HeaderXForwardedFor, clientIP)
|
|
}
|
|
}),
|
|
}
|
|
|
|
var HideXForwarded = &Middleware{
|
|
before: Rewrite(func(req *Request) {
|
|
for k := range req.Header {
|
|
if strings.HasPrefix(k, "X-Forwarded-") {
|
|
req.Header.Del(k)
|
|
}
|
|
}
|
|
}),
|
|
}
|