From 7b19c536252d6c1fcdafa4c0097b12ef10f9f7d5 Mon Sep 17 00:00:00 2001 From: Trung Date: Thu, 1 Sep 2022 16:01:15 +0200 Subject: [PATCH] Revert addition of opts to the Open() interface Signed-off-by: Trung --- connector/atlassiancrowd/atlassiancrowd.go | 2 +- connector/authproxy/authproxy.go | 2 +- connector/bitbucketcloud/bitbucketcloud.go | 2 +- connector/gitea/gitea.go | 2 +- connector/github/github.go | 2 +- connector/gitlab/gitlab.go | 2 +- connector/google/google.go | 16 +++------------- connector/google/google_test.go | 3 +-- connector/keystone/keystone.go | 2 +- connector/ldap/ldap.go | 2 +- connector/linkedin/linkedin.go | 2 +- connector/microsoft/microsoft.go | 2 +- connector/mock/connectortest.go | 4 ++-- connector/oauth/oauth.go | 2 +- connector/oidc/oidc.go | 2 +- connector/openshift/openshift.go | 2 +- connector/saml/saml.go | 2 +- server/server.go | 2 +- 18 files changed, 21 insertions(+), 32 deletions(-) diff --git a/connector/atlassiancrowd/atlassiancrowd.go b/connector/atlassiancrowd/atlassiancrowd.go index 754abcccb2..e2ca94b0de 100644 --- a/connector/atlassiancrowd/atlassiancrowd.go +++ b/connector/atlassiancrowd/atlassiancrowd.go @@ -81,7 +81,7 @@ type crowdAuthenticationError struct { } // Open returns a strategy for logging in through Atlassian Crowd -func (c *Config) Open(_ string, logger log.Logger, opts ...interface{}) (connector.Connector, error) { +func (c *Config) Open(_ string, logger log.Logger) (connector.Connector, error) { if c.BaseURL == "" { return nil, fmt.Errorf("crowd: no baseURL provided for crowd connector") } diff --git a/connector/authproxy/authproxy.go b/connector/authproxy/authproxy.go index 0f4322bfef..487a3f6072 100644 --- a/connector/authproxy/authproxy.go +++ b/connector/authproxy/authproxy.go @@ -24,7 +24,7 @@ type Config struct { } // Open returns an authentication strategy which requires no user interaction. -func (c *Config) Open(id string, logger log.Logger, opts ...interface{}) (connector.Connector, error) { +func (c *Config) Open(id string, logger log.Logger) (connector.Connector, error) { userHeader := c.UserHeader if userHeader == "" { userHeader = "X-Remote-User" diff --git a/connector/bitbucketcloud/bitbucketcloud.go b/connector/bitbucketcloud/bitbucketcloud.go index 090d32cdd8..27eafb5299 100644 --- a/connector/bitbucketcloud/bitbucketcloud.go +++ b/connector/bitbucketcloud/bitbucketcloud.go @@ -42,7 +42,7 @@ type Config struct { } // Open returns a strategy for logging in through Bitbucket. -func (c *Config) Open(_ string, logger log.Logger, opts ...interface{}) (connector.Connector, error) { +func (c *Config) Open(_ string, logger log.Logger) (connector.Connector, error) { b := bitbucketConnector{ redirectURI: c.RedirectURI, teams: c.Teams, diff --git a/connector/gitea/gitea.go b/connector/gitea/gitea.go index 9fce0527be..6b02099414 100644 --- a/connector/gitea/gitea.go +++ b/connector/gitea/gitea.go @@ -51,7 +51,7 @@ type giteaUser struct { } // Open returns a strategy for logging in through Gitea -func (c *Config) Open(id string, logger log.Logger, opts ...interface{}) (connector.Connector, error) { +func (c *Config) Open(id string, logger log.Logger) (connector.Connector, error) { if c.BaseURL == "" { c.BaseURL = "https://gitea.com" } diff --git a/connector/github/github.go b/connector/github/github.go index d71938589a..ef8d418fa8 100644 --- a/connector/github/github.go +++ b/connector/github/github.go @@ -69,7 +69,7 @@ type Org struct { } // Open returns a strategy for logging in through GitHub. -func (c *Config) Open(id string, logger log.Logger, opts ...interface{}) (connector.Connector, error) { +func (c *Config) Open(id string, logger log.Logger) (connector.Connector, error) { if c.Org != "" { // Return error if both 'org' and 'orgs' fields are used. if len(c.Orgs) > 0 { diff --git a/connector/gitlab/gitlab.go b/connector/gitlab/gitlab.go index b4154e4a51..7d8e83377f 100644 --- a/connector/gitlab/gitlab.go +++ b/connector/gitlab/gitlab.go @@ -45,7 +45,7 @@ type gitlabUser struct { } // Open returns a strategy for logging in through GitLab. -func (c *Config) Open(id string, logger log.Logger, opts ...interface{}) (connector.Connector, error) { +func (c *Config) Open(id string, logger log.Logger) (connector.Connector, error) { if c.BaseURL == "" { c.BaseURL = "https://gitlab.com" } diff --git a/connector/google/google.go b/connector/google/google.go index 58e997b1a7..72cc6a18a5 100644 --- a/connector/google/google.go +++ b/connector/google/google.go @@ -55,7 +55,7 @@ type Config struct { } // Open returns a connector which can be used to login users through Google. -func (c *Config) Open(id string, logger log.Logger, opts ...interface{}) (conn connector.Connector, err error) { +func (c *Config) Open(id string, logger log.Logger) (conn connector.Connector, err error) { ctx, cancel := context.WithCancel(context.Background()) provider, err := oidc.NewProvider(ctx, issuerURL) @@ -71,17 +71,7 @@ func (c *Config) Open(id string, logger log.Logger, opts ...interface{}) (conn c scopes = append(scopes, "profile", "email") } - var ok bool - clientOpts := make([]option.ClientOption, len(opts)) - for i, opt := range opts { - clientOpts[i], ok = opt.(option.ClientOption) - if !ok { - cancel() - return nil, fmt.Errorf("options passed to google connector cannot be cast into option.ClientOptions") - } - } - - srv, err := createDirectoryService(c.ServiceAccountFilePath, c.AdminEmail, logger, clientOpts...) + srv, err := createDirectoryService(c.ServiceAccountFilePath, c.AdminEmail, logger) if err != nil { cancel() return nil, fmt.Errorf("could not create directory service: %v", err) @@ -292,7 +282,7 @@ func (c *googleConnector) getGroups(email string, fetchTransitiveGroupMembership // createDirectoryService sets up super user impersonation and creates an admin client for calling // the google admin api. If no serviceAccountFilePath is defined, the application default credential // is used. -func createDirectoryService(serviceAccountFilePath, email string, logger log.Logger, opts ...option.ClientOption) (*admin.Service, error) { +func createDirectoryService(serviceAccountFilePath, email string, logger log.Logger) (*admin.Service, error) { if email == "" { return nil, fmt.Errorf("directory service requires adminEmail") } diff --git a/connector/google/google_test.go b/connector/google/google_test.go index 4f4a462f65..5cecbec994 100644 --- a/connector/google/google_test.go +++ b/connector/google/google_test.go @@ -10,7 +10,6 @@ import ( "github.com/sirupsen/logrus" "github.com/stretchr/testify/assert" - "google.golang.org/api/option" ) func testSetup(t *testing.T) *httptest.Server { @@ -27,7 +26,7 @@ func testSetup(t *testing.T) *httptest.Server { func newConnector(config *Config, serverURL string) (*googleConnector, error) { log := logrus.New() - conn, err := config.Open("id", log, option.WithEndpoint(serverURL)) + conn, err := config.Open("id", log) if err != nil { return nil, err } diff --git a/connector/keystone/keystone.go b/connector/keystone/keystone.go index 9816b32fcc..c4e98d0569 100644 --- a/connector/keystone/keystone.go +++ b/connector/keystone/keystone.go @@ -109,7 +109,7 @@ var ( ) // Open returns an authentication strategy using Keystone. -func (c *Config) Open(id string, logger log.Logger, opts ...interface{}) (connector.Connector, error) { +func (c *Config) Open(id string, logger log.Logger) (connector.Connector, error) { return &conn{ c.Domain, c.Host, diff --git a/connector/ldap/ldap.go b/connector/ldap/ldap.go index b56ed37f80..df69d60e3c 100644 --- a/connector/ldap/ldap.go +++ b/connector/ldap/ldap.go @@ -202,7 +202,7 @@ func userMatchers(c *Config, logger log.Logger) []UserMatcher { } // Open returns an authentication strategy using LDAP. -func (c *Config) Open(id string, logger log.Logger, opts ...interface{}) (connector.Connector, error) { +func (c *Config) Open(id string, logger log.Logger) (connector.Connector, error) { conn, err := c.OpenConnector(logger) if err != nil { return nil, err diff --git a/connector/linkedin/linkedin.go b/connector/linkedin/linkedin.go index 835e44cfe5..f79f1c49d8 100644 --- a/connector/linkedin/linkedin.go +++ b/connector/linkedin/linkedin.go @@ -29,7 +29,7 @@ type Config struct { } // Open returns a strategy for logging in through LinkedIn -func (c *Config) Open(id string, logger log.Logger, opts ...interface{}) (connector.Connector, error) { +func (c *Config) Open(id string, logger log.Logger) (connector.Connector, error) { return &linkedInConnector{ oauth2Config: &oauth2.Config{ ClientID: c.ClientID, diff --git a/connector/microsoft/microsoft.go b/connector/microsoft/microsoft.go index 584ce4b959..328ea15274 100644 --- a/connector/microsoft/microsoft.go +++ b/connector/microsoft/microsoft.go @@ -60,7 +60,7 @@ type Config struct { } // Open returns a strategy for logging in through Microsoft. -func (c *Config) Open(id string, logger log.Logger, opts ...interface{}) (connector.Connector, error) { +func (c *Config) Open(id string, logger log.Logger) (connector.Connector, error) { m := microsoftConnector{ apiURL: "https://login.microsoftonline.com", graphURL: "https://graph.microsoft.com", diff --git a/connector/mock/connectortest.go b/connector/mock/connectortest.go index f95fedd86f..e7ee438625 100644 --- a/connector/mock/connectortest.go +++ b/connector/mock/connectortest.go @@ -70,7 +70,7 @@ func (m *Callback) Refresh(ctx context.Context, s connector.Scopes, identity con type CallbackConfig struct{} // Open returns an authentication strategy which requires no user interaction. -func (c *CallbackConfig) Open(id string, logger log.Logger, opts ...interface{}) (connector.Connector, error) { +func (c *CallbackConfig) Open(id string, logger log.Logger) (connector.Connector, error) { return NewCallbackConnector(logger), nil } @@ -82,7 +82,7 @@ type PasswordConfig struct { } // Open returns an authentication strategy which prompts for a predefined username and password. -func (c *PasswordConfig) Open(id string, logger log.Logger, opts ...interface{}) (connector.Connector, error) { +func (c *PasswordConfig) Open(id string, logger log.Logger) (connector.Connector, error) { if c.Username == "" { return nil, errors.New("no username supplied") } diff --git a/connector/oauth/oauth.go b/connector/oauth/oauth.go index f432c4b869..e37932ad07 100644 --- a/connector/oauth/oauth.go +++ b/connector/oauth/oauth.go @@ -62,7 +62,7 @@ type Config struct { } `json:"claimMapping"` } -func (c *Config) Open(id string, logger log.Logger, opts ...interface{}) (connector.Connector, error) { +func (c *Config) Open(id string, logger log.Logger) (connector.Connector, error) { var err error userIDKey := c.UserIDKey diff --git a/connector/oidc/oidc.go b/connector/oidc/oidc.go index 6d9708bc54..3953fc3929 100644 --- a/connector/oidc/oidc.go +++ b/connector/oidc/oidc.go @@ -108,7 +108,7 @@ func knownBrokenAuthHeaderProvider(issuerURL string) bool { // Open returns a connector which can be used to login users through an upstream // OpenID Connect provider. -func (c *Config) Open(id string, logger log.Logger, opts ...interface{}) (conn connector.Connector, err error) { +func (c *Config) Open(id string, logger log.Logger) (conn connector.Connector, err error) { ctx, cancel := context.WithCancel(context.Background()) provider, err := oidc.NewProvider(ctx, c.Issuer) diff --git a/connector/openshift/openshift.go b/connector/openshift/openshift.go index 286926c102..05919973e3 100644 --- a/connector/openshift/openshift.go +++ b/connector/openshift/openshift.go @@ -66,7 +66,7 @@ type user struct { // Open returns a connector which can be used to login users through an upstream // OpenShift OAuth2 provider. -func (c *Config) Open(id string, logger log.Logger, opts ...interface{}) (conn connector.Connector, err error) { +func (c *Config) Open(id string, logger log.Logger) (conn connector.Connector, err error) { httpClient, err := newHTTPClient(c.InsecureCA, c.RootCA) if err != nil { return nil, fmt.Errorf("failed to create HTTP client: %w", err) diff --git a/connector/saml/saml.go b/connector/saml/saml.go index 8bd4b86517..908ec703c9 100644 --- a/connector/saml/saml.go +++ b/connector/saml/saml.go @@ -120,7 +120,7 @@ func (c certStore) Certificates() (roots []*x509.Certificate, err error) { // Open validates the config and returns a connector. It does not actually // validate connectivity with the provider. -func (c *Config) Open(id string, logger log.Logger, opts ...interface{}) (connector.Connector, error) { +func (c *Config) Open(id string, logger log.Logger) (connector.Connector, error) { return c.openConnector(logger) } diff --git a/server/server.go b/server/server.go index a1e8f1417d..d617a40198 100755 --- a/server/server.go +++ b/server/server.go @@ -531,7 +531,7 @@ func (s *Server) startGarbageCollection(ctx context.Context, frequency time.Dura // ConnectorConfig is a configuration that can open a connector. type ConnectorConfig interface { - Open(id string, logger log.Logger, opts ...interface{}) (connector.Connector, error) + Open(id string, logger log.Logger) (connector.Connector, error) } // ConnectorsConfig variable provides an easy way to return a config struct