diff --git a/pkg/authenticator/basicauth/basicauth.go b/pkg/authenticator/basicauth/basicauth.go index 7b8894a915..80812d3201 100644 --- a/pkg/authenticator/basicauth/basicauth.go +++ b/pkg/authenticator/basicauth/basicauth.go @@ -20,16 +20,17 @@ import ( "errors" "net/http" + localAuthenticator "github.com/rancher/k3s/pkg/authenticator" "k8s.io/apiserver/pkg/authentication/authenticator" ) // Authenticator authenticates requests using basic auth type Authenticator struct { - auth authenticator.Password + auth localAuthenticator.Password } // New returns a request authenticator that validates credentials using the provided password authenticator -func New(auth authenticator.Password) *Authenticator { +func New(auth localAuthenticator.Password) *Authenticator { return &Authenticator{auth} } diff --git a/pkg/authenticator/interfaces.go b/pkg/authenticator/interfaces.go new file mode 100644 index 0000000000..6cffe6df95 --- /dev/null +++ b/pkg/authenticator/interfaces.go @@ -0,0 +1,27 @@ +/* +Copyright 2014 The Kubernetes 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 authenticator + +import ( + "context" + + "k8s.io/apiserver/pkg/authentication/authenticator" +) + +// Password checks a username and password against a backing authentication +// store and returns a Response or an error if the password could not be +// checked. +type Password interface { + AuthenticatePassword(ctx context.Context, user, password string) (*authenticator.Response, bool, error) +}