[TESTS] oauth2: make it possible to use an alternate http.Client

(cherry picked from commit aea4ab25a9)
(cherry picked from commit d386b212c4)
(cherry picked from commit c4935f08ad)
(cherry picked from commit dc6ca7cd25)
This commit is contained in:
Earl Warren 2023-06-27 10:38:30 +02:00
parent 6eb81e67ba
commit 25296d5a3c
No known key found for this signature in database
GPG key ID: 0579CB2928A78A00
3 changed files with 30 additions and 7 deletions

View file

@ -0,0 +1,10 @@
// SPDX-FileCopyrightText: Copyright the Forgejo contributors
// SPDX-License-Identifier: MIT
package oauth2
import (
"net/http"
)
var HTTPClient *http.Client

View file

@ -63,7 +63,9 @@ func init() {
if setting.OAuth2Client.EnableAutoRegistration { if setting.OAuth2Client.EnableAutoRegistration {
scopes = append(scopes, "user:email") 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( RegisterGothProvider(NewCustomProvider(
@ -73,7 +75,9 @@ func init() {
ProfileURL: availableAttribute(gitlab.ProfileURL), ProfileURL: availableAttribute(gitlab.ProfileURL),
}, func(clientID, secret, callbackURL string, custom *CustomURLMapping, scopes []string) (goth.Provider, error) { }, func(clientID, secret, callbackURL string, custom *CustomURLMapping, scopes []string) (goth.Provider, error) {
scopes = append(scopes, "read_user") 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( RegisterGothProvider(NewCustomProvider(
@ -83,7 +87,9 @@ func init() {
ProfileURL: requiredAttribute(gitea.ProfileURL), ProfileURL: requiredAttribute(gitea.ProfileURL),
}, },
func(clientID, secret, callbackURL string, custom *CustomURLMapping, scopes []string) (goth.Provider, error) { 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( RegisterGothProvider(NewCustomProvider(
@ -93,7 +99,9 @@ func init() {
ProfileURL: requiredAttribute(nextcloud.ProfileURL), ProfileURL: requiredAttribute(nextcloud.ProfileURL),
}, },
func(clientID, secret, callbackURL string, custom *CustomURLMapping, scopes []string) (goth.Provider, error) { 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( RegisterGothProvider(NewCustomProvider(
@ -101,7 +109,9 @@ func init() {
AuthURL: requiredAttribute(mastodon.InstanceURL), AuthURL: requiredAttribute(mastodon.InstanceURL),
}, },
func(clientID, secret, callbackURL string, custom *CustomURLMapping, scopes []string) (goth.Provider, error) { 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( RegisterGothProvider(NewCustomProvider(
@ -114,10 +124,12 @@ func init() {
azureScopes[i] = azureadv2.ScopeType(scope) 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), Tenant: azureadv2.TenantType(custom.Tenant),
Scopes: azureScopes, Scopes: azureScopes,
}), nil })
provider.HTTPClient = HTTPClient
return provider, nil
}, },
)) ))
} }

View file

@ -43,6 +43,7 @@ func (o *OpenIDProvider) CreateGothProvider(providerName, callbackURL string, so
if err != nil { if err != nil {
log.Warn("Failed to create OpenID Connect Provider with name '%s' with url '%s': %v", providerName, source.OpenIDConnectAutoDiscoveryURL, err) 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 return provider, err
} }