[TESTS] oauth2: make it possible to use an alternate http.Client
(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
)
This commit is contained in:
parent
f177b72814
commit
e676d7b265
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 {
|
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
|
||||||
},
|
},
|
||||||
))
|
))
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue