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 4
4
"encoding/json"
5
5
"fmt"
6
6
"maps"
7
+ "slices"
7
8
"strconv"
8
9
"strings"
9
10
gotemplate "text/template"
@@ -812,7 +813,15 @@ func generateProxySetHeaders(
812
813
})
813
814
}
814
815
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
816
825
}
817
826
818
827
func 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) {
3146
3146
}, httpBaseHeaders ... ),
3147
3147
baseHeaders : httpBaseHeaders ,
3148
3148
},
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
+ },
3149
3197
{
3150
3198
msg : "with url rewrite hostname" ,
3151
3199
filters : & dataplane.HTTPFilters {
You can’t perform that action at this time.
0 commit comments