diff --git a/pkg/authprovider/file.go b/pkg/authprovider/file.go index 64cfcb879..1c2ef51bf 100644 --- a/pkg/authprovider/file.go +++ b/pkg/authprovider/file.go @@ -122,6 +122,8 @@ func (f *FileAuthProvider) init() { // LookupAddr looks up a given domain/address and returns appropriate auth strategy func (f *FileAuthProvider) LookupAddr(addr string) []authx.AuthStrategy { + var strategies []authx.AuthStrategy + if strings.Contains(addr, ":") { // default normalization for host:port host, port, err := net.SplitHostPort(addr) @@ -131,15 +133,16 @@ func (f *FileAuthProvider) LookupAddr(addr string) []authx.AuthStrategy { } for domain, strategy := range f.domains { if strings.EqualFold(domain, addr) { - return strategy + strategies = append(strategies, strategy...) } } for compiled, strategy := range f.compiled { if compiled.MatchString(addr) { - return strategy + strategies = append(strategies, strategy...) } } - return nil + + return strategies } // LookupURL looks up a given URL and returns appropriate auth strategy diff --git a/pkg/authprovider/multi.go b/pkg/authprovider/multi.go index d059a7592..77b3348fd 100644 --- a/pkg/authprovider/multi.go +++ b/pkg/authprovider/multi.go @@ -22,7 +22,7 @@ func NewMultiAuthProvider(providers ...AuthProvider) AuthProvider { func (m *MultiAuthProvider) LookupAddr(host string) []authx.AuthStrategy { for _, provider := range m.Providers { strategy := provider.LookupAddr(host) - if strategy != nil { + if len(strategy) > 0 { return strategy } }