Skip to content

Commit eac30d6

Browse files
authored
fix: add header values as described in the documentation (#4031)
Add header values after splitting the provided value string on ',', like described in the documentation. Signed-off-by: Lior Okman <[email protected]>
1 parent 229bf91 commit eac30d6

21 files changed

+181
-86
lines changed

internal/gatewayapi/filters.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -445,7 +445,7 @@ func (t *Translator) processRequestHeaderModifierFilter(
445445
newHeader := ir.AddHeader{
446446
Name: headerKey,
447447
Append: true,
448-
Value: addHeader.Value,
448+
Value: strings.Split(addHeader.Value, ","),
449449
}
450450

451451
filterContext.AddRequestHeaders = append(filterContext.AddRequestHeaders, newHeader)
@@ -500,7 +500,7 @@ func (t *Translator) processRequestHeaderModifierFilter(
500500
newHeader := ir.AddHeader{
501501
Name: string(setHeader.Name),
502502
Append: false,
503-
Value: setHeader.Value,
503+
Value: strings.Split(setHeader.Value, ","),
504504
}
505505

506506
filterContext.AddRequestHeaders = append(filterContext.AddRequestHeaders, newHeader)
@@ -617,7 +617,7 @@ func (t *Translator) processResponseHeaderModifierFilter(
617617
newHeader := ir.AddHeader{
618618
Name: headerKey,
619619
Append: true,
620-
Value: addHeader.Value,
620+
Value: strings.Split(addHeader.Value, ","),
621621
}
622622

623623
filterContext.AddResponseHeaders = append(filterContext.AddResponseHeaders, newHeader)
@@ -672,7 +672,7 @@ func (t *Translator) processResponseHeaderModifierFilter(
672672
newHeader := ir.AddHeader{
673673
Name: string(setHeader.Name),
674674
Append: false,
675-
Value: setHeader.Value,
675+
Value: strings.Split(setHeader.Value, ","),
676676
}
677677

678678
filterContext.AddResponseHeaders = append(filterContext.AddResponseHeaders, newHeader)

internal/gatewayapi/testdata/grpcroute-with-request-header-modifier.in.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,11 @@ grpcRoutes:
2626
sectionName: http
2727
rules:
2828
- filters:
29+
- type: "RequestHeaderModifier"
30+
requestHeaderModifier:
31+
add:
32+
- name: "my-header-multi-value"
33+
value: "foo,bar"
2934
- type: "RequestHeaderModifier"
3035
requestHeaderModifier:
3136
add:

internal/gatewayapi/testdata/grpcroute-with-request-header-modifier.out.yaml

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,11 @@ grpcRoutes:
5656
- name: service-1
5757
port: 8080
5858
filters:
59+
- requestHeaderModifier:
60+
add:
61+
- name: my-header-multi-value
62+
value: foo,bar
63+
type: RequestHeaderModifier
5964
- requestHeaderModifier:
6065
add:
6166
- name: my-header
@@ -117,9 +122,15 @@ xdsIR:
117122
port: 10080
118123
routes:
119124
- addRequestHeaders:
125+
- append: true
126+
name: my-header-multi-value
127+
value:
128+
- foo
129+
- bar
120130
- append: true
121131
name: my-header
122-
value: foo
132+
value:
133+
- foo
123134
destination:
124135
name: grpcroute/default/grpcroute-1/rule/0
125136
settings:

internal/gatewayapi/testdata/httproute-with-backendref-add-multiple-filters.out.yaml

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,8 @@ xdsIR:
147147
addRequestHeaders:
148148
- append: false
149149
name: add-header-3
150-
value: some-value
150+
value:
151+
- some-value
151152
protocol: HTTP
152153
weight: 1
153154
hostname: '*'
@@ -172,10 +173,12 @@ xdsIR:
172173
addRequestHeaders:
173174
- append: true
174175
name: add-header-1
175-
value: some-value
176+
value:
177+
- some-value
176178
- append: true
177179
name: add-header-2
178-
value: some-value
180+
value:
181+
- some-value
179182
protocol: HTTP
180183
weight: 8
181184
- addressType: IP

internal/gatewayapi/testdata/httproute-with-header-filter-duplicate-add-multiple-filters.out.yaml

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -134,13 +134,16 @@ xdsIR:
134134
- addRequestHeaders:
135135
- append: true
136136
name: add-header-1
137-
value: some-value
137+
value:
138+
- some-value
138139
- append: true
139140
name: add-header-2
140-
value: some-value
141+
value:
142+
- some-value
141143
- append: true
142144
name: add-header-3
143-
value: some-value
145+
value:
146+
- some-value
144147
destination:
145148
name: httproute/default/httproute-1/rule/0
146149
settings:

internal/gatewayapi/testdata/httproute-with-header-filter-duplicate-adds.out.yaml

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -144,19 +144,24 @@ xdsIR:
144144
- addRequestHeaders:
145145
- append: true
146146
name: Set-Header-1
147-
value: some-value
147+
value:
148+
- some-value
148149
- append: true
149150
name: set-header-2
150-
value: some-value
151+
value:
152+
- some-value
151153
- append: true
152154
name: set-header-3
153-
value: some-value
155+
value:
156+
- some-value
154157
- append: true
155158
name: set-header-5
156-
value: some-value
159+
value:
160+
- some-value
157161
- append: false
158162
name: set-header-4
159-
value: some-value
163+
value:
164+
- some-value
160165
destination:
161166
name: httproute/default/httproute-1/rule/0
162167
settings:

internal/gatewayapi/testdata/httproute-with-header-filter-empty-header-values.out.yaml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -128,10 +128,12 @@ xdsIR:
128128
- addRequestHeaders:
129129
- append: true
130130
name: example-header-2
131-
value: ""
131+
value:
132+
- ""
132133
- append: false
133134
name: example-header-1
134-
value: ""
135+
value:
136+
- ""
135137
destination:
136138
name: httproute/default/httproute-1/rule/0
137139
settings:

internal/gatewayapi/testdata/httproute-with-mirror-filter-multiple.out.yaml

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -144,13 +144,16 @@ xdsIR:
144144
- addRequestHeaders:
145145
- append: true
146146
name: X-Header-Add
147-
value: header-val-1
147+
value:
148+
- header-val-1
148149
- append: true
149150
name: X-Header-Add-Append
150-
value: header-val-2
151+
value:
152+
- header-val-2
151153
- append: false
152154
name: X-Header-Set
153-
value: set-overwrites-values
155+
value:
156+
- set-overwrites-values
154157
destination:
155158
name: httproute/default/httproute-1/rule/0
156159
settings:

internal/gatewayapi/testdata/httproute-with-response-header-filter-adds.out.yaml

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -140,19 +140,24 @@ xdsIR:
140140
- addResponseHeaders:
141141
- append: true
142142
name: Set-Header-1
143-
value: some-value
143+
value:
144+
- some-value
144145
- append: true
145146
name: set-header-2
146-
value: some-value
147+
value:
148+
- some-value
147149
- append: true
148150
name: set-header-3
149-
value: some-value
151+
value:
152+
- some-value
150153
- append: true
151154
name: set-header-5
152-
value: some-value
155+
value:
156+
- some-value
153157
- append: false
154158
name: set-header-4
155-
value: some-value
159+
value:
160+
- some-value
156161
destination:
157162
name: httproute/default/httproute-1/rule/0
158163
settings:

internal/gatewayapi/testdata/httproute-with-response-header-filter-duplicate-add-multiple-filters.out.yaml

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -134,13 +134,16 @@ xdsIR:
134134
- addResponseHeaders:
135135
- append: true
136136
name: add-header-1
137-
value: some-value
137+
value:
138+
- some-value
138139
- append: true
139140
name: add-header-2
140-
value: some-value
141+
value:
142+
- some-value
141143
- append: true
142144
name: add-header-3
143-
value: some-value
145+
value:
146+
- some-value
144147
destination:
145148
name: httproute/default/httproute-1/rule/0
146149
settings:

0 commit comments

Comments
 (0)