diff --git a/audit/context.go b/audit/context.go index cce379d41..fb1836b0c 100644 --- a/audit/context.go +++ b/audit/context.go @@ -22,6 +22,7 @@ const ( realIPKey key = iota requestID requestMethod + pathKey ) // GetRealIP returns IP address from context. @@ -34,6 +35,16 @@ func GetRealIP(ctx context.Context) string { return ip } +// GetPath returns Path from context. +func GetPath(ctx context.Context) string { + path, ok := ctx.Value(pathKey).(string) + if !ok { + return "" + } + + return path +} + // GetRequestID returns requestID from context. func GetRequestID(ctx context.Context) string { id, ok := ctx.Value(requestID).(string) diff --git a/audit/middleware.go b/audit/middleware.go index 67e577a24..1fda5d53d 100644 --- a/audit/middleware.go +++ b/audit/middleware.go @@ -36,6 +36,7 @@ func Middleware() func(next http.Handler) http.Handler { ctx = context.WithValue(ctx, realIPKey, rip) } + ctx = context.WithValue(ctx, pathKey, r.URL.Path) ctx = context.WithValue(ctx, requestMethod, r.Method) ctx = context.WithValue(ctx, requestID, w.Header().Get("X-Request-Id"))