File tree Expand file tree Collapse file tree 2 files changed +58
-1
lines changed
internal/mode/static/nginx/config Expand file tree Collapse file tree 2 files changed +58
-1
lines changed Original file line number Diff line number Diff line change 44 "encoding/json"
55 "fmt"
66 "maps"
7+ "slices"
78 "strconv"
89 "strings"
910 gotemplate "text/template"
@@ -812,7 +813,15 @@ func generateProxySetHeaders(
812813 })
813814 }
814815
815- return append (proxySetHeaders , baseHeaders ... )
816+ for _ , header := range baseHeaders {
817+ if ! slices .ContainsFunc (proxySetHeaders , func (h http.Header ) bool {
818+ return header .Name == h .Name
819+ }) {
820+ proxySetHeaders = append (proxySetHeaders , header )
821+ }
822+ }
823+
824+ return proxySetHeaders
816825}
817826
818827func generateResponseHeaders (filters * dataplane.HTTPFilters ) http.ResponseHeaders {
Original file line number Diff line number Diff line change @@ -3146,6 +3146,54 @@ func TestGenerateProxySetHeaders(t *testing.T) {
31463146 }, httpBaseHeaders ... ),
31473147 baseHeaders : httpBaseHeaders ,
31483148 },
3149+ {
3150+ msg : "header filter overwrite base header" ,
3151+ filters : & dataplane.HTTPFilters {
3152+ RequestHeaderModifiers : & dataplane.HTTPHeaderFilter {
3153+ Set : []dataplane.HTTPHeader {
3154+ {
3155+ Name : "X-Forwarded-Proto" ,
3156+ Value : "new-proto" ,
3157+ },
3158+ },
3159+ },
3160+ },
3161+ expectedHeaders : []http.Header {
3162+ {
3163+ Name : "X-Forwarded-Proto" ,
3164+ Value : "new-proto" ,
3165+ },
3166+ {
3167+ Name : "Host" ,
3168+ Value : "$gw_api_compliant_host" ,
3169+ },
3170+ {
3171+ Name : "X-Forwarded-For" ,
3172+ Value : "$proxy_add_x_forwarded_for" ,
3173+ },
3174+ {
3175+ Name : "X-Real-IP" ,
3176+ Value : "$remote_addr" ,
3177+ },
3178+ {
3179+ Name : "X-Forwarded-Host" ,
3180+ Value : "$host" ,
3181+ },
3182+ {
3183+ Name : "X-Forwarded-Port" ,
3184+ Value : "$server_port" ,
3185+ },
3186+ {
3187+ Name : "Upgrade" ,
3188+ Value : "$http_upgrade" ,
3189+ },
3190+ {
3191+ Name : "Connection" ,
3192+ Value : "$connection_upgrade" ,
3193+ },
3194+ },
3195+ baseHeaders : httpBaseHeaders ,
3196+ },
31493197 {
31503198 msg : "with url rewrite hostname" ,
31513199 filters : & dataplane.HTTPFilters {
You can’t perform that action at this time.
0 commit comments