@marcel91200 / caddy Mirror · read-only / commits / e2991eb0
Fork 0

Fast and extensible multi-platform HTTP/1-2-3 web server with automatic HTTPS

Mirrored from https://github.com/Slazee/caddy.git

Synced Nov 13, 10:30 UTC

reverseproxy: On 103 don't delete own headers (#5091)

See #5074

Matt Holt committed Sep 29, 2022 at 08:19 UTC e2991eb019e36b612be3d7b43ed961c7a7e3841d
2 files changed +10 -10
modules/caddyhttp/headers/caddyfile.go
+7 -8
@@ -32,12 +32,12 @@ func init() {
32 // parseCaddyfile sets up the handler for response headers from
33 // Caddyfile tokens. Syntax:
34 //
35 -// header [<matcher>] [[+|-|?]<field> [<value|regexp>] [<replacement>]] {
36 -// [+]<field> [<value|regexp> [<replacement>]]
37 -// ?<field> <default_value>
38 -// -<field>
39 -// [defer]
40 -// }
35 +// header [<matcher>] [[+|-|?]<field> [<value|regexp>] [<replacement>]] {
36 +// [+]<field> [<value|regexp> [<replacement>]]
37 +// ?<field> <default_value>
38 +// -<field>
39 +// [defer]
40 +// }
41 //
42 // Either a block can be opened or a single header field can be configured
43 // in the first line, but not both in the same directive. Header operations
@@ -148,8 +148,7 @@ func parseCaddyfile(h httpcaddyfile.Helper) ([]httpcaddyfile.ConfigValue, error)
148 // parseReqHdrCaddyfile sets up the handler for request headers
149 // from Caddyfile tokens. Syntax:
150 //
151 -// request_header [<matcher>] [[+|-]<field> [<value|regexp>] [<replacement>]]
152 -//
151 +// request_header [<matcher>] [[+|-]<field> [<value|regexp>] [<replacement>]]
152 func parseReqHdrCaddyfile(h httpcaddyfile.Helper) ([]httpcaddyfile.ConfigValue, error) {
153 if !h.Next() {
154 return nil, h.ArgErr()
modules/caddyhttp/reverseproxy/reverseproxy.go
+3 -2
@@ -782,8 +782,9 @@ func (h *Handler) reverseProxy(rw http.ResponseWriter, req *http.Request, origRe
782 copyHeader(h, http.Header(header))
783 rw.WriteHeader(code)
784
785 - // Clear headers, it's not automatically done by ResponseWriter.WriteHeader() for 1xx responses
786 - for k := range h {
785 + // Clear headers coming from the backend
786 + // (it's not automatically done by ResponseWriter.WriteHeader() for 1xx responses)
787 + for k := range header {
788 delete(h, k)
789 }
790