Allow disabling of all X-Forwarded-For header processing (#20977)

This commit is contained in:
Mark Theunissen
2025-02-26 20:25:49 +01:00
committed by GitHub
parent f129fd48f2
commit 7cc0c69228
2 changed files with 58 additions and 22 deletions
+24
View File
@@ -84,3 +84,27 @@ func TestGetSourceIP(t *testing.T) {
}
}
}
func TestXFFDisabled(t *testing.T) {
req := &http.Request{
Header: http.Header{
xForwardedFor: []string{"8.8.8.8"},
xRealIP: []string{"1.1.1.1"},
},
}
// When X-Forwarded-For and X-Real-IP headers are both present, X-Forwarded-For takes precedence.
res := GetSourceIP(req)
if res != "8.8.8.8" {
t.Errorf("wrong header, xff takes precedence: got %s, want: 8.8.8.8", res)
}
// When explicitly disabled, the XFF header is ignored and X-Real-IP is used.
enableXFFHeader = false
defer func() {
enableXFFHeader = true
}()
res = GetSourceIP(req)
if res != "1.1.1.1" {
t.Errorf("wrong header, xff is disabled: got %s, want: 1.1.1.1", res)
}
}