mirror of
				https://codeberg.org/forgejo/forgejo.git
				synced 2025-11-04 08:21:11 +00:00 
			
		
		
		
	(cherry picked from commitaea4ab25a9) (cherry picked from commitd386b212c4) (cherry picked from commitc4935f08ad) (cherry picked from commitdc6ca7cd25) (cherry picked from commit25296d5a3c) (cherry picked from commit3d54c64c5f) (cherry picked from commit6ece0b9d01) (cherry picked from commit3b39962033) (cherry picked from commit5e2167cd03) (cherry picked from commite676d7b265) (cherry picked from commit9cd258e865) (cherry picked from commit0a8d58c159) (cherry picked from commitb66d06823a) (cherry picked from commit4fbe2a0047) (cherry picked from commita225e0c9b4)
		
			
				
	
	
		
			59 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
// Copyright 2021 The Gitea Authors. All rights reserved.
 | 
						|
// SPDX-License-Identifier: MIT
 | 
						|
 | 
						|
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"
 | 
						|
)
 | 
						|
 | 
						|
// OpenIDProvider is a GothProvider for OpenID
 | 
						|
type OpenIDProvider struct{}
 | 
						|
 | 
						|
// Name provides the technical name for this provider
 | 
						|
func (o *OpenIDProvider) Name() string {
 | 
						|
	return "openidConnect"
 | 
						|
}
 | 
						|
 | 
						|
// DisplayName returns the friendly name for this provider
 | 
						|
func (o *OpenIDProvider) DisplayName() string {
 | 
						|
	return "OpenID Connect"
 | 
						|
}
 | 
						|
 | 
						|
// IconHTML returns icon HTML for this provider
 | 
						|
func (o *OpenIDProvider) IconHTML(size int) template.HTML {
 | 
						|
	return svg.RenderHTML("gitea-openid", size, "gt-mr-3")
 | 
						|
}
 | 
						|
 | 
						|
// CreateGothProvider creates a GothProvider from this Provider
 | 
						|
func (o *OpenIDProvider) 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 OpenID Connect Provider with name '%s' with url '%s': %v", providerName, source.OpenIDConnectAutoDiscoveryURL, err)
 | 
						|
	}
 | 
						|
	provider.HTTPClient = HTTPClient
 | 
						|
	return provider, err
 | 
						|
}
 | 
						|
 | 
						|
// CustomURLSettings returns the custom url settings for this provider
 | 
						|
func (o *OpenIDProvider) CustomURLSettings() *CustomURLSettings {
 | 
						|
	return nil
 | 
						|
}
 | 
						|
 | 
						|
var _ GothProvider = &OpenIDProvider{}
 | 
						|
 | 
						|
func init() {
 | 
						|
	RegisterGothProvider(&OpenIDProvider{})
 | 
						|
}
 |