From a73742c0a76161a33656465a5cf33f1d383fcb0e Mon Sep 17 00:00:00 2001 From: Wenkai Yin Date: Sun, 16 Aug 2020 21:22:22 +0800 Subject: [PATCH] Return 403 when trying to push artifacts into the proxy cache project to avoid the retrying in the docker client Return 403 when trying to push artifacts into the proxy cache project to avoid the retrying in the docker client fixes #12731 Signed-off-by: Wenkai Yin --- src/server/middleware/repoproxy/proxy.go | 2 +- src/server/registry/route.go | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/server/middleware/repoproxy/proxy.go b/src/server/middleware/repoproxy/proxy.go index fdef48ba8..002aab0f4 100644 --- a/src/server/middleware/repoproxy/proxy.go +++ b/src/server/middleware/repoproxy/proxy.go @@ -184,7 +184,7 @@ func DisableBlobAndManifestUploadMiddleware() func(http.Handler) http.Handler { } if isProxyProject(p) && !isProxySession(ctx) { httpLib.SendError(w, - errors.MethodNotAllowedError( + errors.DeniedError( errors.Errorf("can not push artifact to a proxy project: %v", p.Name))) return } diff --git a/src/server/registry/route.go b/src/server/registry/route.go index ec2a7c0be..d744f42e8 100644 --- a/src/server/registry/route.go +++ b/src/server/registry/route.go @@ -77,6 +77,7 @@ func RegisterRoutes() { root.NewRoute(). Method(http.MethodPost). Path("/*/blobs/uploads"). + Middleware(repoproxy.DisableBlobAndManifestUploadMiddleware()). Middleware(quota.PostInitiateBlobUploadMiddleware()). Middleware(blob.PostInitiateBlobUploadMiddleware()). Handler(proxy) @@ -84,13 +85,11 @@ func RegisterRoutes() { root.NewRoute(). Method(http.MethodPatch). Path("/*/blobs/uploads/:session_id"). - Middleware(repoproxy.DisableBlobAndManifestUploadMiddleware()). Middleware(blob.PatchBlobUploadMiddleware()). Handler(proxy) root.NewRoute(). Method(http.MethodPut). Path("/*/blobs/uploads/:session_id"). - Middleware(repoproxy.DisableBlobAndManifestUploadMiddleware()). Middleware(quota.PutBlobUploadMiddleware()). Middleware(blob.PutBlobUploadMiddleware()). Handler(proxy)