diff --git a/staging/src/k8s.io/kubectl/pkg/proxy/proxy_server.go b/staging/src/k8s.io/kubectl/pkg/proxy/proxy_server.go index a7712fe2c91..2362e22b2a0 100644 --- a/staging/src/k8s.io/kubectl/pkg/proxy/proxy_server.go +++ b/staging/src/k8s.io/kubectl/pkg/proxy/proxy_server.go @@ -61,6 +61,9 @@ type FilterServer struct { // MakeRegexpArray splits a comma separated list of regexps into an array of Regexp objects. func MakeRegexpArray(str string) ([]*regexp.Regexp, error) { + if str == "" { + return []*regexp.Regexp{}, nil + } parts := strings.Split(str, ",") result := make([]*regexp.Regexp, len(parts)) for ix := range parts { diff --git a/staging/src/k8s.io/kubectl/pkg/proxy/proxy_server_test.go b/staging/src/k8s.io/kubectl/pkg/proxy/proxy_server_test.go index a596ba61099..f9a80d13d39 100644 --- a/staging/src/k8s.io/kubectl/pkg/proxy/proxy_server_test.go +++ b/staging/src/k8s.io/kubectl/pkg/proxy/proxy_server_test.go @@ -275,6 +275,28 @@ func TestAccept(t *testing.T) { method: "PUT", expectAccept: false, }, + { + name: "test23", + acceptPaths: DefaultPathAcceptRE, + rejectPaths: DefaultPathRejectRE, + acceptHosts: DefaultHostAcceptRE, + rejectMethods: DefaultMethodRejectRE, + path: "/api/v1/namespaces/default/pods/somepod/exec", + host: "localhost", + method: "POST", + expectAccept: false, + }, + { + name: "test24", + acceptPaths: DefaultPathAcceptRE, + rejectPaths: "", + acceptHosts: DefaultHostAcceptRE, + rejectMethods: DefaultMethodRejectRE, + path: "/api/v1/namespaces/default/pods/somepod/exec", + host: "localhost", + method: "POST", + expectAccept: true, + }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) {