authentification OpenID Connect (Keycloak) : flux authorization code, state signé, validation du token ID via JWKS, provisioning automatique des utilisateurs

This commit is contained in:
fabien committed 2026-10-06 22:03:20 +02:00
1 parent 51bbb45b32
commit bedb6c98e7
15 files changed
+1057 -23

No files matched your search

@@ -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)
}