package registry import ( "github.com/go-gost/core/auth" ) type autherRegistry struct { registry[auth.Authenticator] } func (r *autherRegistry) Register(name string, v auth.Authenticator) error { return r.registry.Register(name, v) } func (r *autherRegistry) Get(name string) auth.Authenticator { if name != "" { return &autherWrapper{name: name, r: r} } return nil } func (r *autherRegistry) get(name string) auth.Authenticator { return r.registry.Get(name) } type autherWrapper struct { name string r *autherRegistry } func (w *autherWrapper) Authenticate(user, password string) bool { v := w.r.get(w.name) if v == nil { return true } return v.Authenticate(user, password) }