summary refs log tree commit diff
diff options
context:
space:
mode:
authortobi <31960611+tsmethurst@users.noreply.github.com>2024-01-09 10:41:15 +0100
committertobi <tobi.smethurst@protonmail.com>2024-01-10 13:53:57 +0100
commit1c56192a44175406b12cf66975e73e9621b14b7e (patch)
treed6ed328e376b2beab6f6d3b0e7a96de26ea6978d
parentf33d05c3697d6d693452e76d0a71ba130e7ea13b (diff)
[feature] Log pubKeyID for http-signed requests (#2501)
-rw-r--r--internal/middleware/logger.go12
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