From a8c6e1a4aee4a616cd7c73a39e579d7c9b63d720 Mon Sep 17 00:00:00 2001 From: mo khan Date: Mon, 14 Apr 2025 16:10:01 -0600 Subject: feat: connect the sessions controller into the app --- app/app.go | 7 ++++--- app/init.go | 21 +++++++++++++++++++++ 2 files changed, 25 insertions(+), 3 deletions(-) (limited to 'app') diff --git a/app/app.go b/app/app.go index 0d3dd05..ad33d97 100644 --- a/app/app.go +++ b/app/app.go @@ -5,8 +5,8 @@ import ( "github.com/xlgmokha/x/pkg/ioc" "gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/app/controllers/health" + "gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/app/controllers/sessions" "gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/app/controllers/sparkles" - "gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/pkg/db" "gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/pkg/web" ) @@ -14,8 +14,9 @@ func New() http.Handler { mux := ioc.MustResolve[*http.ServeMux](ioc.Default) mountable := []web.Mountable{ - sparkles.New(ioc.MustResolve[db.Repository](ioc.Default)), - health.New(), + ioc.MustResolve[*sparkles.Controller](ioc.Default), + ioc.MustResolve[*sessions.Controller](ioc.Default), + ioc.MustResolve[*health.Controller](ioc.Default), } for _, m := range mountable { m.MountTo(mux) diff --git a/app/init.go b/app/init.go index 9ff7bec..9bffde8 100644 --- a/app/init.go +++ b/app/init.go @@ -1,12 +1,17 @@ package app import ( + "context" + "log" "net/http" + "github.com/xlgmokha/x/pkg/env" "github.com/xlgmokha/x/pkg/ioc" "gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/app/controllers/health" + "gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/app/controllers/sessions" "gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/app/controllers/sparkles" "gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/pkg/db" + "gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/pkg/oidc" ) func init() { @@ -22,4 +27,20 @@ func init() { ioc.Register[*health.Controller](ioc.Default, func() *health.Controller { return health.New() }) + ioc.RegisterSingleton[*oidc.OpenID](ioc.Default, func() *oidc.OpenID { + item, err := oidc.New( + context.Background(), + env.Fetch("OIDC_ISSUER", "https://gitlab.com"), + env.Fetch("OAUTH_CLIENT_ID", "client_id"), + env.Fetch("OAUTH_CLIENT_SECRET", "client_secret"), + env.Fetch("OAUTH_REDIRECT_URL", "https://localhost/session/callback"), + ) + if err != nil { + log.Fatal(err) + } + return item + }) + ioc.Register[*sessions.Controller](ioc.Default, func() *sessions.Controller { + return sessions.New(ioc.MustResolve[*oidc.OpenID](ioc.Default)) + }) } -- cgit v1.2.3