in pulsaradmin/pkg/admin/auth/provider.go [57:96]
func GetAuthProvider(config *config.Config) (Provider, error) {
var provider Provider
defaultTransport, err := NewDefaultTransport(config)
if err != nil {
return nil, err
}
switch config.AuthPlugin {
case TLSPluginShortName:
fallthrough
case TLSPluginName:
provider, err = NewAuthenticationTLSFromAuthParams(config.AuthParams, defaultTransport)
case TokenPluginName:
fallthrough
case TokePluginShortName:
provider, err = NewAuthenticationTokenFromAuthParams(config.AuthParams, defaultTransport)
case OAuth2PluginName:
fallthrough
case OAuth2PluginShortName:
provider, err = NewAuthenticationOAuth2WithDefaultFlow(oauth2.Issuer{
IssuerEndpoint: config.IssuerEndpoint,
ClientID: config.ClientID,
Audience: config.Audience,
}, config.KeyFile)
default:
switch {
case len(config.TLSCertFile) > 0 && len(config.TLSKeyFile) > 0:
provider, err = NewAuthenticationTLS(config.TLSCertFile, config.TLSKeyFile, defaultTransport)
case len(config.Token) > 0:
provider, err = NewAuthenticationToken(config.Token, defaultTransport)
case len(config.TokenFile) > 0:
provider, err = NewAuthenticationTokenFromFile(config.TokenFile, defaultTransport)
case len(config.IssuerEndpoint) > 0 || len(config.ClientID) > 0 || len(config.Audience) > 0 || len(config.Scope) > 0:
provider, err = NewAuthenticationOAuth2WithParams(
config.IssuerEndpoint, config.ClientID, config.Audience, config.Scope, defaultTransport)
default:
provider = NewDefaultProvider(defaultTransport)
}
}
return provider, err
}