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) {