Some checks failed
CI / build-and-test (push) Failing after -32m45s
* Include tool name from request in access log entries * Update user agent header in HTTP requests * Add tests for MCP tool name logging
38 lines
1.0 KiB
Go
38 lines
1.0 KiB
Go
package requestip
|
|
|
|
import (
|
|
"net/http"
|
|
"net/http/httptest"
|
|
"testing"
|
|
)
|
|
|
|
func TestFromRequestPrefersXRealIP(t *testing.T) {
|
|
req := httptest.NewRequest(http.MethodGet, "/", nil)
|
|
req.RemoteAddr = "10.0.0.10:5555"
|
|
req.Header.Set("X-Forwarded-For", "198.51.100.1")
|
|
req.Header.Set("X-Real-IP", "203.0.113.10")
|
|
|
|
if got := FromRequest(req); got != "203.0.113.10" {
|
|
t.Fatalf("FromRequest() = %q, want %q", got, "203.0.113.10")
|
|
}
|
|
}
|
|
|
|
func TestFromRequestUsesXForwardedForFirstValue(t *testing.T) {
|
|
req := httptest.NewRequest(http.MethodGet, "/", nil)
|
|
req.RemoteAddr = "10.0.0.10:5555"
|
|
req.Header.Set("X-Forwarded-For", "198.51.100.7, 10.1.1.2")
|
|
|
|
if got := FromRequest(req); got != "198.51.100.7" {
|
|
t.Fatalf("FromRequest() = %q, want %q", got, "198.51.100.7")
|
|
}
|
|
}
|
|
|
|
func TestFromRequestFallsBackToRemoteAddr(t *testing.T) {
|
|
req := httptest.NewRequest(http.MethodGet, "/", nil)
|
|
req.RemoteAddr = "192.0.2.5:1234"
|
|
|
|
if got := FromRequest(req); got != "192.0.2.5" {
|
|
t.Fatalf("FromRequest() = %q, want %q", got, "192.0.2.5")
|
|
}
|
|
}
|