@@ -236,24 +236,16 @@ func TestReverseProxyStripHeadersPresentInConnection(t *testing.T) {
236
236
}
237
237
}
238
238
239
- func TestDontTrustForwardedHeaders (t * testing.T ) {
239
+ func TestXForwardedFor (t * testing.T ) {
240
240
const prevForwardedFor = "client ip"
241
- const prevForwardedProto = "https"
242
- const prevForwardedHost = "example.com"
243
241
const backendResponse = "I am the backend"
244
242
const backendStatus = 404
245
243
backend := httptest .NewServer (http .HandlerFunc (func (w http.ResponseWriter , r * http.Request ) {
246
244
if r .Header .Get ("X-Forwarded-For" ) == "" {
247
245
t .Errorf ("didn't get X-Forwarded-For header" )
248
246
}
249
- if strings .Contains (r .Header .Get ("X-Forwarded-For" ), prevForwardedFor ) {
250
- t .Errorf ("X-Forwarded-For contains prior data" )
251
- }
252
- if strings .Contains (r .Header .Get ("X-Forwarded-Proto" ), prevForwardedProto ) {
253
- t .Errorf ("X-Forwarded-Proto contains prior data" )
254
- }
255
- if strings .Contains (r .Header .Get ("X-Forwarded-Host" ), prevForwardedHost ) {
256
- t .Errorf ("X-Forwarded-Host contains prior data" )
247
+ if ! strings .Contains (r .Header .Get ("X-Forwarded-For" ), prevForwardedFor ) {
248
+ t .Errorf ("X-Forwarded-For didn't contain prior data" )
257
249
}
258
250
w .WriteHeader (backendStatus )
259
251
w .Write ([]byte (backendResponse ))
@@ -271,8 +263,6 @@ func TestDontTrustForwardedHeaders(t *testing.T) {
271
263
getReq .Host = "some-name"
272
264
getReq .Header .Set ("Connection" , "close" )
273
265
getReq .Header .Set ("X-Forwarded-For" , prevForwardedFor )
274
- getReq .Header .Set ("X-Forwarded-Proto" , prevForwardedProto )
275
- getReq .Header .Set ("X-Forwarded-Host" , prevForwardedHost )
276
266
getReq .Close = true
277
267
res , err := frontend .Client ().Do (getReq )
278
268
if err != nil {
@@ -287,7 +277,7 @@ func TestDontTrustForwardedHeaders(t *testing.T) {
287
277
}
288
278
}
289
279
290
- func TestXForwardedFor (t * testing.T ) {
280
+ func TestOverwriteForwardedHeaders (t * testing.T ) {
291
281
const prevForwardedFor = "client ip"
292
282
const prevForwardedProto = "https"
293
283
const prevForwardedHost = "example.com"
@@ -297,14 +287,14 @@ func TestXForwardedFor(t *testing.T) {
297
287
if r .Header .Get ("X-Forwarded-For" ) == "" {
298
288
t .Errorf ("didn't get X-Forwarded-For header" )
299
289
}
300
- if ! strings .Contains (r .Header .Get ("X-Forwarded-For" ), prevForwardedFor ) {
301
- t .Errorf ("X-Forwarded-For didn't contain prior data" )
290
+ if strings .Contains (r .Header .Get ("X-Forwarded-For" ), prevForwardedFor ) {
291
+ t .Errorf ("X-Forwarded-For contains prior data" )
302
292
}
303
- if ! strings .Contains (r .Header .Get ("X-Forwarded-Proto" ), prevForwardedProto ) {
304
- t .Errorf ("X-Forwarded-Proto didn't contain prior data" )
293
+ if strings .Contains (r .Header .Get ("X-Forwarded-Proto" ), prevForwardedProto ) {
294
+ t .Errorf ("X-Forwarded-Proto contains prior data" )
305
295
}
306
- if ! strings .Contains (r .Header .Get ("X-Forwarded-Host" ), prevForwardedHost ) {
307
- t .Errorf ("X-Forwarded-Host didn't contain prior data" )
296
+ if strings .Contains (r .Header .Get ("X-Forwarded-Host" ), prevForwardedHost ) {
297
+ t .Errorf ("X-Forwarded-Host contains prior data" )
308
298
}
309
299
w .WriteHeader (backendStatus )
310
300
w .Write ([]byte (backendResponse ))
@@ -315,7 +305,7 @@ func TestXForwardedFor(t *testing.T) {
315
305
t .Fatal (err )
316
306
}
317
307
proxyHandler := NewSingleHostReverseProxy (backendURL )
318
- proxyHandler .TrustForwardedHeaders = true
308
+ proxyHandler .OverwriteForwardedHeaders = true
319
309
frontend := httptest .NewServer (proxyHandler )
320
310
defer frontend .Close ()
321
311
0 commit comments