diff --git a/services/auth/source/oauth2/providers_cognito.go b/services/auth/source/oauth2/providers_cognito.go index ed499e093f..5b064ce979 100644 --- a/services/auth/source/oauth2/providers_cognito.go +++ b/services/auth/source/oauth2/providers_cognito.go @@ -3,22 +3,9 @@ package oauth2 -import ( - "html/template" - - "code.gitea.io/gitea/modules/log" - "code.gitea.io/gitea/modules/setting" - "code.gitea.io/gitea/modules/svg" - - "github.com/markbates/goth" - "github.com/markbates/goth/providers/openidConnect" -) - -// CognitoProvider is a GothProvider for AWS Cognito -type CognitoProvider struct{} - -func (c *CognitoProvider) SupportSSHPublicKey() bool { - return true +// CognitoProvider is a GothProvider for AWS Cognito (based on OpenID Connect) +type CognitoProvider struct { + OpenIDProvider } // Name provides the technical name for this provider @@ -31,36 +18,6 @@ func (c *CognitoProvider) DisplayName() string { return "AWS Cognito" } -// IconHTML returns icon HTML for this provider -func (c *CognitoProvider) IconHTML(size int) template.HTML { - return svg.RenderHTML("gitea-openid", size) -} - -// CreateGothProvider creates a GothProvider from this Provider -func (c *CognitoProvider) CreateGothProvider(providerName, callbackURL string, source *Source) (goth.Provider, error) { - scopes := setting.OAuth2Client.OpenIDConnectScopes - if len(scopes) == 0 { - scopes = append(scopes, source.Scopes...) - } - - provider, err := openidConnect.New(source.ClientID, source.ClientSecret, callbackURL, source.OpenIDConnectAutoDiscoveryURL, scopes...) - if err != nil { - log.Warn("Failed to create AWS Cognito Provider with name '%s' with url '%s': %v", providerName, source.OpenIDConnectAutoDiscoveryURL, err) - return nil, err - } - if source.ExternalIDClaim != "" { - // UserIdClaims is a fallback list; goth returns the first non-empty matching claim. - // A single entry is sufficient because the admin explicitly chooses one claim (e.g. "sub" for Cognito). - provider.UserIdClaims = []string{source.ExternalIDClaim} - } - return provider, nil -} - -// CustomURLSettings returns the custom url settings for this provider -func (c *CognitoProvider) CustomURLSettings() *CustomURLSettings { - return nil -} - var _ GothProvider = &CognitoProvider{} func init() {