From f03c009f2f8cd3449e7aa38ab27c4ec8577d2fc3 Mon Sep 17 00:00:00 2001 From: Gerrit Date: Mon, 3 Feb 2025 14:09:26 +0100 Subject: [PATCH] Pass error callback function to auditing http filter. --- cmd/metal-api/main.go | 9 ++++++++- go.mod | 2 +- go.sum | 4 ++-- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/cmd/metal-api/main.go b/cmd/metal-api/main.go index 31514a80..ec11fcd1 100644 --- a/cmd/metal-api/main.go +++ b/cmd/metal-api/main.go @@ -791,7 +791,14 @@ func initRestServices(audit auditing.Auditing, withauth bool, ipmiSuperUser meta } if audit != nil { - httpFilter, err := auditing.HttpFilter(audit, logger.WithGroup("audit-middleware")) + filterOpt := auditing.NewHttpFilterErrorCallback(func(err error, response *restful.Response) { + httperr := httperrors.InternalServerError(err) + if err := response.WriteHeaderAndEntity(httperr.StatusCode, httperr); err != nil { + logger.Error("failed to send response", "error", err) + } + }) + + httpFilter, err := auditing.HttpFilter(audit, logger.WithGroup("audit-middleware"), filterOpt) if err != nil { log.Fatalf("unable to create http filter for auditing: %s", err) } diff --git a/go.mod b/go.mod index 3ffbd58f..d45f97a5 100644 --- a/go.mod +++ b/go.mod @@ -20,7 +20,7 @@ require ( github.com/looplab/fsm v1.0.2 github.com/metal-stack/go-ipam v1.14.8 github.com/metal-stack/masterdata-api v0.11.5 - github.com/metal-stack/metal-lib v0.19.0 + github.com/metal-stack/metal-lib v0.19.1-0.20250203130132-879b43f148f1 github.com/metal-stack/security v0.9.1 github.com/metal-stack/v v1.0.3 github.com/nsqio/go-nsq v1.1.0 diff --git a/go.sum b/go.sum index 755d726d..82da34e4 100644 --- a/go.sum +++ b/go.sum @@ -257,8 +257,8 @@ github.com/metal-stack/go-ipam v1.14.8 h1:M840hp1RcM2fHfMjFG5rn02yKFq6hXh+WvmYIS github.com/metal-stack/go-ipam v1.14.8/go.mod h1:LzAKT0X9dGAMs1uoLyJfJZkhwMMDLaSYvx9n6MJ9FI4= github.com/metal-stack/masterdata-api v0.11.5 h1:r7bYdhdVgOjCk6k7K/SCLlHALH23ZuMGY8E4udk4wXQ= github.com/metal-stack/masterdata-api v0.11.5/go.mod h1:Xk8kqxAp3NkAc2BX8yTIWgSlD77T897QSdRSluWvP4w= -github.com/metal-stack/metal-lib v0.19.0 h1:4yBnp/jPGgX9KeCje3A4MFL2oDjgjOjgsIK391LltRI= -github.com/metal-stack/metal-lib v0.19.0/go.mod h1:fCMaWwVGA/xAoGvBk72/nfzqBkHly0iOzrWpc55Fau4= +github.com/metal-stack/metal-lib v0.19.1-0.20250203130132-879b43f148f1 h1:c/P0oUzOXu7bAENmpNRKuFFPNa9KFCaQzkDi99dCex8= +github.com/metal-stack/metal-lib v0.19.1-0.20250203130132-879b43f148f1/go.mod h1:fCMaWwVGA/xAoGvBk72/nfzqBkHly0iOzrWpc55Fau4= github.com/metal-stack/security v0.9.1 h1:cx3afSJPSOh03E9gKjdG6mbNU+ox/dqV7q8T9MkrHxo= github.com/metal-stack/security v0.9.1/go.mod h1:ENm5kPjqh4uYvn79sAIxd6GZBwtF2GSsGdkLELrB/D4= github.com/metal-stack/v v1.0.3 h1:Sh2oBlnxrCUD+mVpzfC8HiqL045YWkxs0gpTvkjppqs=