From 1ba95183f64310ad46cd5afed2276a44a885f935 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Agn=C3=A8s=20Toulet?= <35176601+AgnesToulet@users.noreply.github.com> Date: Thu, 23 Jul 2020 09:54:07 +0200 Subject: [PATCH] HTTPServer: add possibility to use additional middlewares (#26514) --- pkg/api/http_server.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/pkg/api/http_server.go b/pkg/api/http_server.go index 430c6766cb2..10f7138e81a 100644 --- a/pkg/api/http_server.go +++ b/pkg/api/http_server.go @@ -53,6 +53,7 @@ type HTTPServer struct { context context.Context streamManager *live.StreamManager httpSrv *http.Server + middlewares []macaron.Handler RouteRegister routing.RouteRegister `inject:""` Bus bus.Bus `inject:""` @@ -82,6 +83,10 @@ func (hs *HTTPServer) Init() error { return nil } +func (hs *HTTPServer) AddMiddleware(middleware macaron.Handler) { + hs.middlewares = append(hs.middlewares, middleware) +} + func (hs *HTTPServer) Run(ctx context.Context) error { hs.context = ctx @@ -323,6 +328,10 @@ func (hs *HTTPServer) addMiddlewaresAndStaticRoutes() { } m.Use(middleware.HandleNoCacheHeader()) + + for _, mw := range hs.middlewares { + m.Use(mw) + } } func (hs *HTTPServer) metricsEndpoint(ctx *macaron.Context) {