Move provider initialisation into providers package

This commit is contained in:
Joel Speed
2022-02-16 10:38:05 +00:00
parent 95dd2745c7
commit d162b018a8
28 changed files with 786 additions and 211 deletions
+1 -1
View File
@@ -624,7 +624,7 @@ func (l *LegacyProvider) convert() (Providers, error) {
ClientID: l.ClientID,
ClientSecret: l.ClientSecret,
ClientSecretFile: l.ClientSecretFile,
Type: l.ProviderType,
Type: ProviderType(l.ProviderType),
CAFiles: l.ProviderCAFiles,
LoginURL: l.LoginURL,
RedeemURL: l.RedeemURL,
+51 -1
View File
@@ -52,7 +52,7 @@ type Provider struct {
// Type is the OAuth provider
// must be set from the supported providers group,
// otherwise 'Google' is set as default
Type string `json:"provider,omitempty"`
Type ProviderType `json:"provider,omitempty"`
// Name is the providers display name
// if set, it will be shown to the users in the login page.
Name string `json:"name,omitempty"`
@@ -84,6 +84,56 @@ type Provider struct {
AcrValues string `json:"acrValues,omitempty"`
}
// ProviderType is used to enumerate the different provider type options
// Valid options are: adfs, azure, bitbucket, digitalocean facebook, github,
// gitlab, google, keycloak, keycloak-oidc, linkedin, login.gov, nextcloud
// and oidc.
type ProviderType string
const (
// ADFSProvider is the provider type for ADFS
ADFSProvider ProviderType = "adfs"
// AzureProvider is the provider type for Azure
AzureProvider ProviderType = "azure"
// BitbucketProvider is the provider type for Bitbucket
BitbucketProvider ProviderType = "bitbucket"
// DigitalOceanProvider is the provider type for DigitalOcean
DigitalOceanProvider ProviderType = "digitalocean"
// FacebookProvider is the provider type for Facebook
FacebookProvider ProviderType = "facebook"
// GitHubProvider is the provider type for GitHub
GitHubProvider ProviderType = "github"
// GitLabProvider is the provider type for GitLab
GitLabProvider ProviderType = "gitlab"
// GoogleProvider is the provider type for GoogleProvider
GoogleProvider ProviderType = "google"
// KeycloakProvider is the provider type for Keycloak
KeycloakProvider ProviderType = "keycloak"
// KeycloakOIDCProvider is the provider type for Keycloak OIDC
KeycloakOIDCProvider ProviderType = "keycloak-oidc"
// LinkedInProvider is the provider type for LinkedIn
LinkedInProvider ProviderType = "linkedin"
// LoginGovProvider is the provider type for LoginGov
LoginGovProvider ProviderType = "login.gov"
// NextCloudProvider is the provider type for NextCloud
NextCloudProvider ProviderType = "nextcloud"
// OIDCProvider is the provider type for OIDC
OIDCProvider ProviderType = "oidc"
)
type KeycloakOptions struct {
// Group enables to restrict login to members of indicated group
Groups []string `json:"groups,omitempty"`