mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
accf28a7db
The server configuration already keeps the current version if the daemon. This patch changes the middleware logic to use it rather than using the global value. This removes the dockerversion package dependency from the api. Signed-off-by: David Calavera <david.calavera@gmail.com>
40 lines
1.3 KiB
Go
40 lines
1.3 KiB
Go
package server
|
|
|
|
import (
|
|
"github.com/Sirupsen/logrus"
|
|
"github.com/docker/docker/api"
|
|
"github.com/docker/docker/api/server/httputils"
|
|
"github.com/docker/docker/api/server/middleware"
|
|
"github.com/docker/docker/pkg/authorization"
|
|
)
|
|
|
|
// 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
|
|
|
|
handleVersion := middleware.NewVersionMiddleware(s.cfg.Version, api.DefaultVersion, api.MinVersion)
|
|
next = handleVersion(next)
|
|
|
|
if s.cfg.EnableCors {
|
|
handleCORS := middleware.NewCORSMiddleware(s.cfg.CorsHeaders)
|
|
next = handleCORS(next)
|
|
}
|
|
|
|
handleUserAgent := middleware.NewUserAgentMiddleware(s.cfg.Version)
|
|
next = handleUserAgent(next)
|
|
|
|
// Only want this on debug level
|
|
if s.cfg.Logging && logrus.GetLevel() == logrus.DebugLevel {
|
|
next = middleware.DebugRequestMiddleware(next)
|
|
}
|
|
|
|
if len(s.cfg.AuthorizationPluginNames) > 0 {
|
|
s.authZPlugins = authorization.NewPlugins(s.cfg.AuthorizationPluginNames)
|
|
handleAuthorization := middleware.NewAuthorizationMiddleware(s.authZPlugins)
|
|
next = handleAuthorization(next)
|
|
}
|
|
|
|
return next
|
|
}
|