diff --git a/pkg/config/legacy/conversion.go b/pkg/config/legacy/conversion.go index 4ae54f88..73859d26 100644 --- a/pkg/config/legacy/conversion.go +++ b/pkg/config/legacy/conversion.go @@ -179,6 +179,11 @@ func transformHeadersFromPluginParams(params map[string]string) v1.HeaderOperati out.Set = make(map[string]string) } out.Set[k] = v + + if out.Delete == nil { + out.Delete = make(map[string]bool) + } + out.Delete[k] = true } } return out diff --git a/pkg/config/v1/common.go b/pkg/config/v1/common.go index ddb23356..d5703e55 100644 --- a/pkg/config/v1/common.go +++ b/pkg/config/v1/common.go @@ -127,7 +127,8 @@ type HTTPPluginOptions struct { } type HeaderOperations struct { - Set map[string]string `json:"set,omitempty"` + Set map[string]string `json:"set,omitempty"` + Delete map[string]bool `json:"delete,omitempty"` } type HTTPHeader struct { diff --git a/pkg/plugin/client/http2http.go b/pkg/plugin/client/http2http.go index 889a10f6..807eece7 100644 --- a/pkg/plugin/client/http2http.go +++ b/pkg/plugin/client/http2http.go @@ -61,6 +61,9 @@ func NewHTTP2HTTPPlugin(_ PluginContext, options v1.ClientPluginOptions) (Plugin for k, v := range p.opts.RequestHeaders.Set { req.Header.Set(k, v) } + for k, _ := range p.opts.RequestHeaders.Delete { + req.Header.Del(k) + } }, BufferPool: pool.NewBuffer(32 * 1024), ErrorLog: stdlog.New(log.NewWriteLogger(log.WarnLevel, 2), "", 0), diff --git a/pkg/plugin/client/http2https.go b/pkg/plugin/client/http2https.go index 538f2850..43163130 100644 --- a/pkg/plugin/client/http2https.go +++ b/pkg/plugin/client/http2https.go @@ -69,6 +69,9 @@ func NewHTTP2HTTPSPlugin(_ PluginContext, options v1.ClientPluginOptions) (Plugi for k, v := range p.opts.RequestHeaders.Set { req.Header.Set(k, v) } + for k, _ := range p.opts.RequestHeaders.Delete { + req.Header.Del(k) + } }, Transport: tr, BufferPool: pool.NewBuffer(32 * 1024), diff --git a/pkg/plugin/client/https2http.go b/pkg/plugin/client/https2http.go index 963b9d2e..96459124 100644 --- a/pkg/plugin/client/https2http.go +++ b/pkg/plugin/client/https2http.go @@ -68,6 +68,9 @@ func NewHTTPS2HTTPPlugin(_ PluginContext, options v1.ClientPluginOptions) (Plugi for k, v := range p.opts.RequestHeaders.Set { req.Header.Set(k, v) } + for k, _ := range p.opts.RequestHeaders.Delete { + req.Header.Del(k) + } }, BufferPool: pool.NewBuffer(32 * 1024), ErrorLog: stdlog.New(log.NewWriteLogger(log.WarnLevel, 2), "", 0), diff --git a/pkg/plugin/client/https2https.go b/pkg/plugin/client/https2https.go index 5c669d36..c2c6ffd0 100644 --- a/pkg/plugin/client/https2https.go +++ b/pkg/plugin/client/https2https.go @@ -73,6 +73,9 @@ func NewHTTPS2HTTPSPlugin(_ PluginContext, options v1.ClientPluginOptions) (Plug for k, v := range p.opts.RequestHeaders.Set { req.Header.Set(k, v) } + for k, _ := range p.opts.RequestHeaders.Delete { + req.Header.Del(k) + } }, Transport: tr, BufferPool: pool.NewBuffer(32 * 1024),