package contextrequest import ( "errors" "net/http" "github.com/GoogleCloudPlatform/kubernetes/pkg/auth/user" ) type Context interface { Get(req *http.Request) (interface{}, bool) } type Authenticator struct { context Context } func NewAuthenticator(context Context) *Authenticator { return &Authenticator{context} } func (a *Authenticator) AuthenticateRequest(req *http.Request) (user.Info, bool, error) { obj, ok := a.context.Get(req) if !ok { return nil, false, nil } user, ok := obj.(user.Info) if !ok { return nil, false, errors.New("the context object is not a user.Info") } return user, true, nil }