diff --git a/pkg/apiserver/authentication/identityprovider/identity_provider.go b/pkg/apiserver/authentication/identityprovider/identity_provider.go index 613c53eb0..7e93e8fd7 100644 --- a/pkg/apiserver/authentication/identityprovider/identity_provider.go +++ b/pkg/apiserver/authentication/identityprovider/identity_provider.go @@ -47,6 +47,10 @@ type Identity interface { // SetupWithOptions will verify the configuration and initialize the identityProviders func SetupWithOptions(options []oauth.IdentityProviderOptions) error { + // Clear all providers when reloading configuration + oauthProviders = make(map[string]OAuthProvider) + genericProviders = make(map[string]GenericProvider) + for _, o := range options { if oauthProviders[o.Name] != nil || genericProviders[o.Name] != nil { err := fmt.Errorf("duplicate identity provider found: %s, name must be unique", o.Name) diff --git a/pkg/apiserver/authentication/identityprovider/identity_provider_test.go b/pkg/apiserver/authentication/identityprovider/identity_provider_test.go index 96195c905..4ffeb5837 100644 --- a/pkg/apiserver/authentication/identityprovider/identity_provider_test.go +++ b/pkg/apiserver/authentication/identityprovider/identity_provider_test.go @@ -113,6 +113,12 @@ func TestSetupWith(t *testing.T) { Type: "LDAPIdentityProvider", Provider: options.DynamicOptions{}, }, + { + Name: "ldap", + MappingMethod: "auto", + Type: "LDAPIdentityProvider", + Provider: options.DynamicOptions{}, + }, }}, wantErr: true, },