authentification OpenID Connect (Keycloak) : flux authorization code, state signé, validation du token ID via JWKS, provisioning automatique des utilisateurs
This commit is contained in:
1 parent
51bbb45b32
commit
bedb6c98e7
15 files changed
+1057
-23
No files matched your search
@@ -11,6 +11,7 @@ import (
|
||||
type Database interface {
|
||||
SettingsRepository() domain.SettingsRepository
|
||||
UserRepository() domain.UserRepository
|
||||
OIDCProviderRepository() domain.OIDCProviderRepository
|
||||
FileRepository() domain.FileRepository
|
||||
ProviderRepository() domain.ProviderRepository
|
||||
AgentRepository() domain.AgentRepository
|
||||
|
||||
@@ -64,6 +64,10 @@ func (db *TursoDB) SettingsRepository() domain.SettingsRepository {
|
||||
return NewTursoSettingsRepository(db.DB)
|
||||
}
|
||||
|
||||
func (db *TursoDB) OIDCProviderRepository() domain.OIDCProviderRepository {
|
||||
return NewTursoOIDCProviderRepository(db.DB)
|
||||
}
|
||||
|
||||
func (db *TursoDB) FileRepository() domain.FileRepository {
|
||||
return NewTursoFileRepository(db.DB)
|
||||
}
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
package turso
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
"log"
|
||||
|
||||
"trankilou.fr/lassistanoque/backend/internal/adapter/database/orm"
|
||||
"trankilou.fr/lassistanoque/backend/internal/domain"
|
||||
)
|
||||
|
||||
type TursoOIDCProviderRepository struct {
|
||||
db *sql.DB
|
||||
OIDCTable orm.Table[domain.OIDCProvider]
|
||||
}
|
||||
|
||||
func NewTursoOIDCProviderRepository(db *sql.DB) *TursoOIDCProviderRepository {
|
||||
dialect := orm.NewSqliteDialect()
|
||||
oidcTable, err := orm.NewTable[domain.OIDCProvider](db, dialect, "oidc")
|
||||
if err != nil {
|
||||
log.Fatalf("error creating oidc provider table")
|
||||
}
|
||||
return &TursoOIDCProviderRepository{
|
||||
db: db,
|
||||
OIDCTable: oidcTable,
|
||||
}
|
||||
}
|
||||
|
||||
func (or *TursoOIDCProviderRepository) ListOIDCProviders() ([]*domain.OIDCProvider, error) {
|
||||
return or.OIDCTable.Select(orm.WithOrder("label asc"))
|
||||
}
|
||||
|
||||
func (or *TursoOIDCProviderRepository) FindOIDCProvider(id string) (*domain.OIDCProvider, error) {
|
||||
return or.OIDCTable.Get(id)
|
||||
}
|
||||
Reference in new issue
Block a user