diff options
| author | mo khan <mo@mokhan.ca> | 2025-05-26 10:08:55 -0600 |
|---|---|---|
| committer | mo khan <mo@mokhan.ca> | 2025-05-26 10:08:55 -0600 |
| commit | b54998f78dc2229e5500f6ac22ef24869a3dac0a (patch) | |
| tree | ddf4bc22cda1d64e17e0b845edaa4b796f7638e2 /app/init.go | |
| parent | 3d6cdf0b3d6fa23509208e2355a7b7d26400a8ea (diff) | |
| parent | f5011f9b32b33ef78405e624d223194ff4b0bd7f (diff) | |
Merge branch 'envoy-authn-header' into 'main'
Improve startup, logging, and authorization integration
See merge request gitlab-org/software-supply-chain-security/authorization/sparkled!11
Diffstat (limited to 'app/init.go')
| -rw-r--r-- | app/init.go | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/app/init.go b/app/init.go index d9ca3de..935c962 100644 --- a/app/init.go +++ b/app/init.go @@ -7,8 +7,11 @@ import ( "github.com/coreos/go-oidc/v3/oidc" "github.com/rs/zerolog" + "github.com/xlgmokha/x/pkg/env" "github.com/xlgmokha/x/pkg/ioc" "github.com/xlgmokha/x/pkg/log" + "github.com/xlgmokha/x/pkg/mapper" + "gitlab.com/gitlab-org/software-supply-chain-security/authorization/authzd.git/pkg/rpc" "gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/app/cfg" "gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/app/controllers/dashboard" "gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/app/controllers/sparkles" @@ -44,8 +47,12 @@ func init() { }, } }) - ioc.Register[*oidc.Provider](ioc.Default, func() *oidc.Provider { - ctx := context.WithValue(context.Background(), oauth2.HTTPClient, ioc.MustResolve[*http.Client](ioc.Default)) + ioc.RegisterSingleton[*oidc.Provider](ioc.Default, func() *oidc.Provider { + ctx := context.WithValue( + context.Background(), + oauth2.HTTPClient, + ioc.MustResolve[*http.Client](ioc.Default), + ) return web.NewOIDCProvider(ctx, cfg.OIDCIssuer, func(err error) { ioc.MustResolve[*zerolog.Logger](ioc.Default).Err(err).Send() }) @@ -55,6 +62,22 @@ func init() { ClientID: cfg.OAuthClientID, } }) + ioc.Register[rpc.Ability](ioc.Default, func() rpc.Ability { + return rpc.NewAbilityProtobufClient( + env.Fetch("AUTHZD_HOST", ""), + ioc.MustResolve[*http.Client](ioc.Default), + ) + }) http.DefaultClient = ioc.MustResolve[*http.Client](ioc.Default) + + mapper.Register[*http.Request, log.Fields](func(r *http.Request) log.Fields { + return log.Fields{ + "host": r.URL.Host, + "method": r.Method, + "path": r.URL.Path, + "remote_host": r.RemoteAddr, + "request_id": r.Header.Get("x-request-id"), + } + }) } |
