forked from NYANDEV/forgejo
[TESTS] oauth2: make it possible to use an alternate http.Client
(cherry picked from commit aea4ab25a93642b9032544e82299ef652162a092) (cherry picked from commit d386b212c48d0b1c8b50f947f11f08a0ad8c6d63) (cherry picked from commit c4935f08adc2830747905fdd051c551a7e3a0434) (cherry picked from commit dc6ca7cd25d82039a89c6b0d34cb1cfe80d186e9) (cherry picked from commit 25296d5a3cc48b8a6b3517a8e085f30208f681c8) (cherry picked from commit 3d54c64c5f7793e70201ed8b1d636aff2160682e) (cherry picked from commit 6ece0b9d0144b85ef3e3c5814e56f3d87cacf4cc) (cherry picked from commit 3b39962033fe87494f2318e4db89dd47182ccaef) (cherry picked from commit 5e2167cd03efc7af5782abb4fcfa009345a550e3) (cherry picked from commit e676d7b265d0784241c498645dcd7b6127071024) (cherry picked from commit 9cd258e8658af36f7149249e81a8923284c4802f) (cherry picked from commit 0a8d58c1592d0677819977bba4f08cad6a178865) (cherry picked from commit b66d06823a5634ab355e95c6171749c9bac93878) (cherry picked from commit 4fbe2a0047c2b78b5a329664f6c9442576d65bbf) (cherry picked from commit a225e0c9b419ed32f35699630af0d7b97e6a3395) (cherry picked from commit 21b670b9273353ec233c2840282b168150c0dc99) (cherry picked from commit d586e335d51dd447cc76b42dac8ddacbf99feb73) (cherry picked from commit 7ab21549a3014aa7f9ab55d6a9f35a8b1ca551b8)
This commit is contained in:
parent
6e4ae401d8
commit
eb3235039f
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…
Reference in a new issue