replaced authentik with generic oidc provider
This commit is contained in:
+6
-2
@@ -112,10 +112,14 @@ func NewProviderByName(name string) (Provider, error) {
|
||||
return NewGiteeProvider(), nil
|
||||
case NameLivechat:
|
||||
return NewLivechatProvider(), nil
|
||||
case NameAuthentik:
|
||||
return NewAuthentikProvider(), nil
|
||||
case NameGitea:
|
||||
return NewGiteaProvider(), nil
|
||||
case NameOIDC:
|
||||
return NewOIDCProvider(), nil
|
||||
case NameOIDC + "2":
|
||||
return NewOIDCProvider(), nil
|
||||
case NameOIDC + "3":
|
||||
return NewOIDCProvider(), nil
|
||||
default:
|
||||
return nil, errors.New("Missing provider " + name)
|
||||
}
|
||||
|
||||
+27
-9
@@ -136,15 +136,6 @@ func TestNewProviderByName(t *testing.T) {
|
||||
t.Error("Expected to be instance of *auth.Livechat")
|
||||
}
|
||||
|
||||
// authentik
|
||||
p, err = auth.NewProviderByName(auth.NameAuthentik)
|
||||
if err != nil {
|
||||
t.Errorf("Expected nil, got error %v", err)
|
||||
}
|
||||
if _, ok := p.(*auth.Authentik); !ok {
|
||||
t.Error("Expected to be instance of *auth.Authentik")
|
||||
}
|
||||
|
||||
// gitea
|
||||
p, err = auth.NewProviderByName(auth.NameGitea)
|
||||
if err != nil {
|
||||
@@ -153,4 +144,31 @@ func TestNewProviderByName(t *testing.T) {
|
||||
if _, ok := p.(*auth.Gitea); !ok {
|
||||
t.Error("Expected to be instance of *auth.Gitea")
|
||||
}
|
||||
|
||||
// oidc
|
||||
p, err = auth.NewProviderByName(auth.NameOIDC)
|
||||
if err != nil {
|
||||
t.Errorf("Expected nil, got error %v", err)
|
||||
}
|
||||
if _, ok := p.(*auth.OIDC); !ok {
|
||||
t.Error("Expected to be instance of *auth.OIDC")
|
||||
}
|
||||
|
||||
// oidc2
|
||||
p, err = auth.NewProviderByName(auth.NameOIDC + "2")
|
||||
if err != nil {
|
||||
t.Errorf("Expected nil, got error %v", err)
|
||||
}
|
||||
if _, ok := p.(*auth.OIDC); !ok {
|
||||
t.Error("Expected to be instance of *auth.OIDC")
|
||||
}
|
||||
|
||||
// oidc3
|
||||
p, err = auth.NewProviderByName(auth.NameOIDC + "3")
|
||||
if err != nil {
|
||||
t.Errorf("Expected nil, got error %v", err)
|
||||
}
|
||||
if _, ok := p.(*auth.OIDC); !ok {
|
||||
t.Error("Expected to be instance of *auth.OIDC")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,19 +6,19 @@ import (
|
||||
"golang.org/x/oauth2"
|
||||
)
|
||||
|
||||
var _ Provider = (*Authentik)(nil)
|
||||
var _ Provider = (*OIDC)(nil)
|
||||
|
||||
// NameAuthentik is the unique name of the Authentik provider.
|
||||
const NameAuthentik string = "authentik"
|
||||
// NameOIDC is the unique name of the OpenID Connect (OIDC) provider.
|
||||
const NameOIDC string = "oidc"
|
||||
|
||||
// Authentik allows authentication via Authentik OAuth2.
|
||||
type Authentik struct {
|
||||
// OIDC allows authentication via OpenID Connect (OIDC) OAuth2 provider.
|
||||
type OIDC struct {
|
||||
*baseProvider
|
||||
}
|
||||
|
||||
// NewAuthentikProvider creates new Authentik provider instance with some defaults.
|
||||
func NewAuthentikProvider() *Authentik {
|
||||
return &Authentik{&baseProvider{
|
||||
// NewOIDCProvider creates new OpenID Connect (OIDC) provider instance with some defaults.
|
||||
func NewOIDCProvider() *OIDC {
|
||||
return &OIDC{&baseProvider{
|
||||
scopes: []string{
|
||||
"openid", // minimal requirement to return the id
|
||||
"email",
|
||||
@@ -27,10 +27,10 @@ func NewAuthentikProvider() *Authentik {
|
||||
}}
|
||||
}
|
||||
|
||||
// FetchAuthUser returns an AuthUser instance based the Authentik's user api.
|
||||
// FetchAuthUser returns an AuthUser instance based the provider's user api.
|
||||
//
|
||||
// API reference: https://goauthentik.io/docs/providers/oauth2/
|
||||
func (p *Authentik) FetchAuthUser(token *oauth2.Token) (*AuthUser, error) {
|
||||
// API reference: https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims
|
||||
func (p *OIDC) FetchAuthUser(token *oauth2.Token) (*AuthUser, error) {
|
||||
data, err := p.FetchRawUserData(token)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
Reference in New Issue
Block a user