func GetAuthProvider()

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
}