mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
8d3467626e
This makes separating middlewares from the core api easier. As an example, the authorization middleware is moved to it's own package. Initialize all static middlewares when the server is created, reducing allocations every time a route is wrapper with the middlewares. Signed-off-by: David Calavera <david.calavera@gmail.com>
24 lines
682 B
Go
24 lines
682 B
Go
package server
|
|
|
|
import (
|
|
"github.com/Sirupsen/logrus"
|
|
"github.com/docker/docker/api/server/httputils"
|
|
"github.com/docker/docker/api/server/middleware"
|
|
)
|
|
|
|
// handleWithGlobalMiddlwares wraps the handler function for a request with
|
|
// the server's global middlewares. The order of the middlewares is backwards,
|
|
// meaning that the first in the list will be evaluated last.
|
|
func (s *Server) handleWithGlobalMiddlewares(handler httputils.APIFunc) httputils.APIFunc {
|
|
next := handler
|
|
|
|
for _, m := range s.middlewares {
|
|
next = m.WrapHandler(next)
|
|
}
|
|
|
|
if s.cfg.Logging && logrus.GetLevel() == logrus.DebugLevel {
|
|
next = middleware.DebugRequestMiddleware(next)
|
|
}
|
|
|
|
return next
|
|
}
|