From b1466e572b02b355036c391256c44dca44afb549 Mon Sep 17 00:00:00 2001 From: Wenhao Zhou <34303854+zhou1203@users.noreply.github.com> Date: Thu, 29 Jun 2023 19:09:44 +0800 Subject: [PATCH] fix: clear all oauth Providers when reloading configuration (#5797) * fix: clear all auth Providers when reloading configuration Signed-off-by: wenhaozhou * fix:identity-provider test Signed-off-by: wenhaozhou --------- Signed-off-by: wenhaozhou --- .../authentication/identityprovider/identity_provider.go | 4 ++++ .../identityprovider/identity_provider_test.go | 6 ++++++ 2 files changed, 10 insertions(+) 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, },