diff options
author | tobi <31960611+tsmethurst@users.noreply.github.com> | 2024-01-09 10:41:15 +0100 |
---|---|---|
committer | tobi <tobi.smethurst@protonmail.com> | 2024-01-10 13:53:57 +0100 |
commit | 1c56192a44175406b12cf66975e73e9621b14b7e (patch) | |
tree | d6ed328e376b2beab6f6d3b0e7a96de26ea6978d | |
parent | f33d05c3697d6d693452e76d0a71ba130e7ea13b (diff) |
[feature] Log pubKeyID for http-signed requests (#2501)
-rw-r--r-- | internal/middleware/logger.go | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/internal/middleware/logger.go b/internal/middleware/logger.go index 676f9e69..89a0c396 100644 --- a/internal/middleware/logger.go +++ b/internal/middleware/logger.go @@ -28,6 +28,7 @@ import ( "codeberg.org/gruf/go-kv" "codeberg.org/gruf/go-logger/v2/level" "github.com/gin-gonic/gin" + "github.com/superseriousbusiness/gotosocial/internal/gtscontext" "github.com/superseriousbusiness/gotosocial/internal/gtserror" "github.com/superseriousbusiness/gotosocial/internal/log" ) @@ -77,15 +78,24 @@ func Logger(logClientIP bool) gin.HandlerFunc { fields[2] = kv.Field{"method", c.Request.Method} fields[3] = kv.Field{"statusCode", code} fields[4] = kv.Field{"path", path} + + // Set optional request logging fields. if logClientIP { fields = append(fields, kv.Field{ "clientIP", c.ClientIP(), }) } + ctx := c.Request.Context() + if pubKeyID := gtscontext.HTTPSignaturePubKeyID(ctx); pubKeyID != nil { + fields = append(fields, kv.Field{ + "pubKeyID", pubKeyID.String(), + }) + } + // Create log entry with fields l := log.New() - l = l.WithContext(c.Request.Context()) + l = l.WithContext(ctx) l = l.WithFields(fields...) // Default is info |