summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/app.go7
-rw-r--r--app/init.go21
2 files changed, 25 insertions, 3 deletions
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))
+ })
}