GoDoxy/internal/net/http/middleware/x_forwarded.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)
}
}
}),
}