[TESTS] oauth2: make it possible to use an alternate http.Client
(cherry picked from commitaea4ab25a9) (cherry picked from commitd386b212c4) (cherry picked from commitc4935f08ad)
This commit is contained in:
		
							parent
							
								
									caf2dc4fa7
								
							
						
					
					
						commit
						dc6ca7cd25
					
				
					 3 changed files with 30 additions and 7 deletions
				
			
		
							
								
								
									
										10
									
								
								services/auth/source/oauth2/http.go
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								services/auth/source/oauth2/http.go
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,10 @@
 | 
			
		|||
// SPDX-FileCopyrightText: Copyright the Forgejo contributors
 | 
			
		||||
// SPDX-License-Identifier: MIT
 | 
			
		||||
 | 
			
		||||
package oauth2
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"net/http"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
var HTTPClient *http.Client
 | 
			
		||||
| 
						 | 
				
			
			@ -63,7 +63,9 @@ func init() {
 | 
			
		|||
			if setting.OAuth2Client.EnableAutoRegistration {
 | 
			
		||||
				scopes = append(scopes, "user:email")
 | 
			
		||||
			}
 | 
			
		||||
			return github.NewCustomisedURL(clientID, secret, callbackURL, custom.AuthURL, custom.TokenURL, custom.ProfileURL, custom.EmailURL, scopes...), nil
 | 
			
		||||
			provider := github.NewCustomisedURL(clientID, secret, callbackURL, custom.AuthURL, custom.TokenURL, custom.ProfileURL, custom.EmailURL, scopes...)
 | 
			
		||||
			provider.HTTPClient = HTTPClient
 | 
			
		||||
			return provider, nil
 | 
			
		||||
		}))
 | 
			
		||||
 | 
			
		||||
	RegisterGothProvider(NewCustomProvider(
 | 
			
		||||
| 
						 | 
				
			
			@ -73,7 +75,9 @@ func init() {
 | 
			
		|||
			ProfileURL: availableAttribute(gitlab.ProfileURL),
 | 
			
		||||
		}, func(clientID, secret, callbackURL string, custom *CustomURLMapping, scopes []string) (goth.Provider, error) {
 | 
			
		||||
			scopes = append(scopes, "read_user")
 | 
			
		||||
			return gitlab.NewCustomisedURL(clientID, secret, callbackURL, custom.AuthURL, custom.TokenURL, custom.ProfileURL, scopes...), nil
 | 
			
		||||
			provider := gitlab.NewCustomisedURL(clientID, secret, callbackURL, custom.AuthURL, custom.TokenURL, custom.ProfileURL, scopes...)
 | 
			
		||||
			provider.HTTPClient = HTTPClient
 | 
			
		||||
			return provider, nil
 | 
			
		||||
		}))
 | 
			
		||||
 | 
			
		||||
	RegisterGothProvider(NewCustomProvider(
 | 
			
		||||
| 
						 | 
				
			
			@ -83,7 +87,9 @@ func init() {
 | 
			
		|||
			ProfileURL: requiredAttribute(gitea.ProfileURL),
 | 
			
		||||
		},
 | 
			
		||||
		func(clientID, secret, callbackURL string, custom *CustomURLMapping, scopes []string) (goth.Provider, error) {
 | 
			
		||||
			return gitea.NewCustomisedURL(clientID, secret, callbackURL, custom.AuthURL, custom.TokenURL, custom.ProfileURL, scopes...), nil
 | 
			
		||||
			provider := gitea.NewCustomisedURL(clientID, secret, callbackURL, custom.AuthURL, custom.TokenURL, custom.ProfileURL, scopes...)
 | 
			
		||||
			provider.HTTPClient = HTTPClient
 | 
			
		||||
			return provider, nil
 | 
			
		||||
		}))
 | 
			
		||||
 | 
			
		||||
	RegisterGothProvider(NewCustomProvider(
 | 
			
		||||
| 
						 | 
				
			
			@ -93,7 +99,9 @@ func init() {
 | 
			
		|||
			ProfileURL: requiredAttribute(nextcloud.ProfileURL),
 | 
			
		||||
		},
 | 
			
		||||
		func(clientID, secret, callbackURL string, custom *CustomURLMapping, scopes []string) (goth.Provider, error) {
 | 
			
		||||
			return nextcloud.NewCustomisedURL(clientID, secret, callbackURL, custom.AuthURL, custom.TokenURL, custom.ProfileURL, scopes...), nil
 | 
			
		||||
			provider := nextcloud.NewCustomisedURL(clientID, secret, callbackURL, custom.AuthURL, custom.TokenURL, custom.ProfileURL, scopes...)
 | 
			
		||||
			provider.HTTPClient = HTTPClient
 | 
			
		||||
			return provider, nil
 | 
			
		||||
		}))
 | 
			
		||||
 | 
			
		||||
	RegisterGothProvider(NewCustomProvider(
 | 
			
		||||
| 
						 | 
				
			
			@ -101,7 +109,9 @@ func init() {
 | 
			
		|||
			AuthURL: requiredAttribute(mastodon.InstanceURL),
 | 
			
		||||
		},
 | 
			
		||||
		func(clientID, secret, callbackURL string, custom *CustomURLMapping, scopes []string) (goth.Provider, error) {
 | 
			
		||||
			return mastodon.NewCustomisedURL(clientID, secret, callbackURL, custom.AuthURL, scopes...), nil
 | 
			
		||||
			provider := mastodon.NewCustomisedURL(clientID, secret, callbackURL, custom.AuthURL, scopes...)
 | 
			
		||||
			provider.HTTPClient = HTTPClient
 | 
			
		||||
			return provider, nil
 | 
			
		||||
		}))
 | 
			
		||||
 | 
			
		||||
	RegisterGothProvider(NewCustomProvider(
 | 
			
		||||
| 
						 | 
				
			
			@ -114,10 +124,12 @@ func init() {
 | 
			
		|||
				azureScopes[i] = azureadv2.ScopeType(scope)
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			return azureadv2.New(clientID, secret, callbackURL, azureadv2.ProviderOptions{
 | 
			
		||||
			provider := azureadv2.New(clientID, secret, callbackURL, azureadv2.ProviderOptions{
 | 
			
		||||
				Tenant: azureadv2.TenantType(custom.Tenant),
 | 
			
		||||
				Scopes: azureScopes,
 | 
			
		||||
			}), nil
 | 
			
		||||
			})
 | 
			
		||||
			provider.HTTPClient = HTTPClient
 | 
			
		||||
			return provider, nil
 | 
			
		||||
		},
 | 
			
		||||
	))
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -43,6 +43,7 @@ func (o *OpenIDProvider) CreateGothProvider(providerName, callbackURL string, so
 | 
			
		|||
	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
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue