MCPcopy Create free account
hub / github.com/docker/docker-agent / BearerTokenMiddleware

Function BearerTokenMiddleware

pkg/server/server.go:899–926  ·  view source on GitHub ↗

BearerTokenMiddleware validates bearer token authentication

(expectedToken string)

Source from the content-addressed store, hash-verified

897
898// BearerTokenMiddleware validates bearer token authentication
899func BearerTokenMiddleware(expectedToken string) echo.MiddlewareFunc {
900 return func(next echo.HandlerFunc) echo.HandlerFunc {
901 return func(c echo.Context) error {
902 // Skip authentication for health and readiness endpoints
903 if c.Path() == "/health" || c.Path() == "/ready" {
904 return next(c)
905 }
906
907 auth := c.Request().Header.Get("Authorization")
908 if auth == "" {
909 return echo.NewHTTPError(http.StatusUnauthorized, "missing Authorization header")
910 }
911
912 // Extract Bearer token
913 const prefix = "Bearer "
914 if len(auth) < len(prefix) || auth[:len(prefix)] != prefix {
915 return echo.NewHTTPError(http.StatusUnauthorized, "invalid Authorization header format")
916 }
917
918 token := auth[len(prefix):]
919 if subtle.ConstantTimeCompare([]byte(token), []byte(expectedToken)) != 1 {
920 return echo.NewHTTPError(http.StatusUnauthorized, "invalid token")
921 }
922
923 return next(c)
924 }
925 }
926}

Callers 1

NewWithManagerFunction · 0.85

Calls 1

GetMethod · 0.65

Tested by

no test coverage detected