From cdcf6a5a2a31f6b7bf3fca8f448ac0e802ad0f94 Mon Sep 17 00:00:00 2001 From: mkelvers Date: Sun, 28 Jun 2026 12:45:46 +0200 Subject: [PATCH] chore: stop redacting token from request log query params --- internal/server/observability.go | 17 +---------------- internal/server/server_test.go | 9 +++------ 2 files changed, 4 insertions(+), 22 deletions(-) diff --git a/internal/server/observability.go b/internal/server/observability.go index 9fcc33ca..cf285f4c 100644 --- a/internal/server/observability.go +++ b/internal/server/observability.go @@ -3,7 +3,6 @@ package server import ( "mal/internal/observability" "net/http" - "strings" "time" "github.com/gin-gonic/gin" @@ -62,7 +61,7 @@ func requestLogFields(c *gin.Context, path, query, route string, duration time.D fields["route"] = route } if query != "" { - fields["query"] = redactSensitiveQuery(query) + fields["query"] = query } if size := c.Writer.Size(); size >= 0 { fields["bytes"] = size @@ -83,17 +82,3 @@ func requestLogLevel(status int) observability.LogLevel { } return observability.LogLevelInfo } - -func redactSensitiveQuery(query string) string { - parts := strings.Split(query, "&") - for i, part := range parts { - key := part - if before, _, ok := strings.Cut(part, "="); ok { - key = before - } - if strings.EqualFold(key, "token") { - parts[i] = key + "=REDACTED" - } - } - return strings.Join(parts, "&") -} diff --git a/internal/server/server_test.go b/internal/server/server_test.go index 8112a6cd..89b76f80 100644 --- a/internal/server/server_test.go +++ b/internal/server/server_test.go @@ -149,7 +149,7 @@ func TestRequestLoggerLogsFailedStreamProxy(t *testing.T) { } } -func TestRequestLoggerRedactsProxyTokenQuery(t *testing.T) { +func TestRequestLoggerLogsProxyTokenQuery(t *testing.T) { gin.SetMode(gin.TestMode) var logs bytes.Buffer @@ -172,11 +172,8 @@ func TestRequestLoggerRedactsProxyTokenQuery(t *testing.T) { t.Fatalf("status = %d, want %d", rec.Code, http.StatusForbidden) } got := logs.String() - if strings.Contains(got, "secret-token") { - t.Fatalf("log line leaked proxy token: %s", got) - } - if !strings.Contains(got, `query="lang=en&token=REDACTED"`) { - t.Fatalf("log line missing redacted query: %s", got) + if !strings.Contains(got, `query="lang=en&token=secret-token"`) { + t.Fatalf("log line missing raw query: %s", got) } }