chore: stop redacting token from request log query params
This commit is contained in:
@@ -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, "&")
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user