1
0
mirror of https://github.com/golang/go synced 2024-11-23 08:40:08 -07:00
go/api/next/53002.txt

7 lines
425 B
Plaintext
Raw Normal View History

net/http/httputil: add ReverseProxy.Rewrite Add a new Rewrite hook to ReverseProxy, superseding the Director hook. Director does not distinguish between the inbound and outbound request, which makes it possible for headers added by Director to be inadvertently removed before forwarding if they are listed in the inbound request's Connection header. Rewrite accepts a value containing the inbound and outbound requests, with hop-by-hop headers already removed from the outbound request, avoiding this problem. ReverseProxy's appends the client IP to the inbound X-Forwarded-For header by default. Users must manually delete untrusted X-Forwarded-For values. When used with a Rewrite hook, ReverseProxy now strips X-Forwarded-* headers by default. NewSingleHostReverseProxy creates a proxy that does not rewrite the Host header of inbound requests. Changing this behavior is cumbersome, as it requires wrapping the Director function created by NewSingleHostReverseProxy. The Rewrite hook's ProxyRequest parameter provides a SetURL method that provides equivalent functionality to NewSingleHostReverseProxy, rewrites the Host header by default, and can be more easily extended with additional customizations. Fixes #28168. Fixes #50580. Fixes #53002. Change-Id: Ib84e2fdd1d52c610e3887af66f517d4a74e594d0 Reviewed-on: https://go-review.googlesource.com/c/go/+/407214 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Roland Shoemaker <roland@golang.org> Run-TryBot: Damien Neil <dneil@google.com>
2022-05-18 17:23:28 -06:00
pkg net/http/httputil, method (*ProxyRequest) SetURL(*url.URL) #53002
pkg net/http/httputil, method (*ProxyRequest) SetXForwarded() #53002
pkg net/http/httputil, type ProxyRequest struct #53002
pkg net/http/httputil, type ProxyRequest struct, In *http.Request #53002
pkg net/http/httputil, type ProxyRequest struct, Out *http.Request #53002
pkg net/http/httputil, type ReverseProxy struct, Rewrite func(*ProxyRequest) #53002