Skip to content

Commit 5d858cb

Browse files
committed
fix: Parsing X-Forwarded-IP
1 parent b3e0860 commit 5d858cb

File tree

2 files changed

+15
-8
lines changed

2 files changed

+15
-8
lines changed

internal/config.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -287,7 +287,12 @@ func (c *Config) setupProvider(name string) error {
287287
return nil
288288
}
289289

290-
func (c *Config) IsIPAddressAuthenticated(address string) (bool, error) {
290+
func (c *Config) IsIPAddressAuthenticated(addresses string) (bool, error) {
291+
// Check only the right-most address to be safe
292+
split := strings.Split(addresses, ",")
293+
address := split[len(split)-1]
294+
address = strings.TrimSpace(address)
295+
291296
addr := net.ParseIP(address)
292297
if addr == nil {
293298
return false, fmt.Errorf("invalid ip address: '%s'", address)

internal/config_test.go

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -423,13 +423,15 @@ trusted-ip-addresses:
423423
assert.NoError(err)
424424

425425
table := map[string]bool{
426-
"1.2.3.3": false,
427-
"1.2.3.4": true,
428-
"1.2.3.5": false,
429-
"192.168.1.1": false,
430-
"30.1.0.1": true,
431-
"30.1.255.254": true,
432-
"30.2.0.1": false,
426+
"1.2.3.3": false,
427+
"1.2.3.4": true,
428+
"1.2.3.5": false,
429+
"192.168.1.1": false,
430+
"30.1.0.1": true,
431+
"30.1.255.254": true,
432+
"30.2.0.1": false,
433+
"30.2.0.1, 1.2.3.4": true,
434+
"1.2.3.4, 30.2.0.1": false,
433435
}
434436

435437
for in, want := range table {

0 commit comments

Comments
 (0)