From 345b6c7c064e618c306856d2390b8e9c1b87d4a2 Mon Sep 17 00:00:00 2001 From: James Ravn Date: Fri, 6 Mar 2020 16:03:23 +0000 Subject: [PATCH] Fix scope parsing Per https://docs.docker.com/registry/spec/auth/scope/#resource-scope-grammar and https://docs.docker.com/registry/spec/auth/oauth/ multiple scopes are separated by a single space within a single `scope` parameter. --- auth_server/server/server.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/auth_server/server/server.go b/auth_server/server/server.go index 7c4f8142..e3cf9c1b 100644 --- a/auth_server/server/server.go +++ b/auth_server/server/server.go @@ -227,7 +227,8 @@ func (as *AuthServer) ParseRequest(req *http.Request) (*authRequest, error) { } // https://github.com/docker/distribution/blob/1b9ab303a477ded9bdd3fc97e9119fa8f9e58fca/docs/spec/auth/scope.md#resource-scope-grammar if req.FormValue("scope") != "" { - for _, scopeStr := range req.Form["scope"] { + scope := req.Form["scope"][0] + for _, scopeStr := range strings.Split(scope, " ") { parts := strings.Split(scopeStr, ":") var scope authScope