byteclaw/internal/server/clientip_test.go

26 lines
643 B
Go

package server
import (
"net/http/httptest"
"testing"
)
func TestClientIPTrustedProxy(t *testing.T) {
s := &Server{}
r := httptest.NewRequest("GET", "/", nil)
r.RemoteAddr = "127.0.0.1:1234"
r.Header.Set("X-Forwarded-For", "6.6.6.6, 1.2.3.4")
if got := s.clientIP(r); got != "1.2.3.4" {
t.Fatalf("loopback proxy: got %s", got)
}
r.RemoteAddr = "9.9.9.9:1"
if got := s.clientIP(r); got != "9.9.9.9" {
t.Fatalf("untrusted peer: got %s", got)
}
n, _ := ParseCIDRs([]string{"10.0.1.0/24"})
s.TrustedProxies = n
r.RemoteAddr = "10.0.1.6:1"
if got := s.clientIP(r); got != "1.2.3.4" {
t.Fatalf("cidr proxy: got %s", got)
}
}