mirror of
https://github.com/goharbor/harbor.git
synced 2024-12-24 17:47:46 +01:00
Merge pull request #10367 from ywk253100/191227_list
Remove the manifest list middleware
This commit is contained in:
commit
6571135cbf
@ -23,7 +23,6 @@ import (
|
|||||||
"github.com/goharbor/harbor/src/core/middlewares/countquota"
|
"github.com/goharbor/harbor/src/core/middlewares/countquota"
|
||||||
"github.com/goharbor/harbor/src/core/middlewares/immutable"
|
"github.com/goharbor/harbor/src/core/middlewares/immutable"
|
||||||
"github.com/goharbor/harbor/src/core/middlewares/listrepo"
|
"github.com/goharbor/harbor/src/core/middlewares/listrepo"
|
||||||
"github.com/goharbor/harbor/src/core/middlewares/multiplmanifest"
|
|
||||||
"github.com/goharbor/harbor/src/core/middlewares/readonly"
|
"github.com/goharbor/harbor/src/core/middlewares/readonly"
|
||||||
"github.com/goharbor/harbor/src/core/middlewares/regtoken"
|
"github.com/goharbor/harbor/src/core/middlewares/regtoken"
|
||||||
"github.com/goharbor/harbor/src/core/middlewares/sizequota"
|
"github.com/goharbor/harbor/src/core/middlewares/sizequota"
|
||||||
@ -66,7 +65,6 @@ func (b *DefaultCreator) geMiddleware(mName string) alice.Constructor {
|
|||||||
CHART: func(next http.Handler) http.Handler { return chart.New(next) },
|
CHART: func(next http.Handler) http.Handler { return chart.New(next) },
|
||||||
READONLY: func(next http.Handler) http.Handler { return readonly.New(next) },
|
READONLY: func(next http.Handler) http.Handler { return readonly.New(next) },
|
||||||
URL: func(next http.Handler) http.Handler { return url.New(next) },
|
URL: func(next http.Handler) http.Handler { return url.New(next) },
|
||||||
MUITIPLEMANIFEST: func(next http.Handler) http.Handler { return multiplmanifest.New(next) },
|
|
||||||
LISTREPO: func(next http.Handler) http.Handler { return listrepo.New(next) },
|
LISTREPO: func(next http.Handler) http.Handler { return listrepo.New(next) },
|
||||||
CONTENTTRUST: func(next http.Handler) http.Handler { return contenttrust.New(next) },
|
CONTENTTRUST: func(next http.Handler) http.Handler { return contenttrust.New(next) },
|
||||||
VULNERABLE: func(next http.Handler) http.Handler { return vulnerable.New(next) },
|
VULNERABLE: func(next http.Handler) http.Handler { return vulnerable.New(next) },
|
||||||
|
@ -19,7 +19,6 @@ const (
|
|||||||
CHART = "chart"
|
CHART = "chart"
|
||||||
READONLY = "readonly"
|
READONLY = "readonly"
|
||||||
URL = "url"
|
URL = "url"
|
||||||
MUITIPLEMANIFEST = "manifest"
|
|
||||||
LISTREPO = "listrepo"
|
LISTREPO = "listrepo"
|
||||||
CONTENTTRUST = "contenttrust"
|
CONTENTTRUST = "contenttrust"
|
||||||
VULNERABLE = "vulnerable"
|
VULNERABLE = "vulnerable"
|
||||||
@ -33,7 +32,7 @@ const (
|
|||||||
var ChartMiddlewares = []string{CHART}
|
var ChartMiddlewares = []string{CHART}
|
||||||
|
|
||||||
// Middlewares with sequential organization
|
// Middlewares with sequential organization
|
||||||
var Middlewares = []string{READONLY, URL, REGTOKEN, MUITIPLEMANIFEST, LISTREPO, CONTENTTRUST, VULNERABLE, SIZEQUOTA, IMMUTABLE, COUNTQUOTA}
|
var Middlewares = []string{READONLY, URL, REGTOKEN, LISTREPO, CONTENTTRUST, VULNERABLE, SIZEQUOTA, IMMUTABLE, COUNTQUOTA}
|
||||||
|
|
||||||
// MiddlewaresLocal ...
|
// MiddlewaresLocal ...
|
||||||
var MiddlewaresLocal = []string{SIZEQUOTA, IMMUTABLE, COUNTQUOTA}
|
var MiddlewaresLocal = []string{SIZEQUOTA, IMMUTABLE, COUNTQUOTA}
|
||||||
|
@ -1,48 +0,0 @@
|
|||||||
// Copyright Project Harbor Authors
|
|
||||||
//
|
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
// you may not use this file except in compliance with the License.
|
|
||||||
// You may obtain a copy of the License at
|
|
||||||
//
|
|
||||||
// http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
//
|
|
||||||
// Unless required by applicable law or agreed to in writing, software
|
|
||||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
// See the License for the specific language governing permissions and
|
|
||||||
// limitations under the License.
|
|
||||||
|
|
||||||
package multiplmanifest
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/goharbor/harbor/src/common/utils/log"
|
|
||||||
"github.com/goharbor/harbor/src/core/middlewares/util"
|
|
||||||
"net/http"
|
|
||||||
"strings"
|
|
||||||
)
|
|
||||||
|
|
||||||
type multipleManifestHandler struct {
|
|
||||||
next http.Handler
|
|
||||||
}
|
|
||||||
|
|
||||||
// New ...
|
|
||||||
func New(next http.Handler) http.Handler {
|
|
||||||
return &multipleManifestHandler{
|
|
||||||
next: next,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// ServeHTTP The handler is responsible for blocking request to upload manifest list by docker client, which is not supported so far by Harbor.
|
|
||||||
func (mh multipleManifestHandler) ServeHTTP(rw http.ResponseWriter, req *http.Request) {
|
|
||||||
match, _, _ := util.MatchPushManifest(req)
|
|
||||||
if match {
|
|
||||||
contentType := req.Header.Get("Content-type")
|
|
||||||
// application/vnd.docker.distribution.manifest.list.v2+json
|
|
||||||
if strings.Contains(contentType, "manifest.list.v2") {
|
|
||||||
log.Debugf("Content-type: %s is not supported, failing the response.", contentType)
|
|
||||||
http.Error(rw, util.MarshalError("UNSUPPORTED_MEDIA_TYPE", "Manifest.list is not supported."), http.StatusUnsupportedMediaType)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}
|
|
||||||
mh.next.ServeHTTP(rw, req)
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user