diff options
| author | mo khan <mo@mokhan.ca> | 2025-05-28 12:14:11 -0600 |
|---|---|---|
| committer | mo khan <mo@mokhan.ca> | 2025-05-28 12:14:11 -0600 |
| commit | 591f293c8bcf464ed62701321d3f27de31ceb621 (patch) | |
| tree | 6b9c8c303f9816a3faf7abb9a75c3c59b6a5808a /app/middleware/user_parser.go | |
| parent | f76542bc846bc77e825055a1a6ea7cd0cb178844 (diff) | |
refactor: parse headers injected by envoy
Diffstat (limited to 'app/middleware/user_parser.go')
| -rw-r--r-- | app/middleware/user_parser.go | 28 |
1 files changed, 4 insertions, 24 deletions
diff --git a/app/middleware/user_parser.go b/app/middleware/user_parser.go index cd6f36f..dfa0cce 100644 --- a/app/middleware/user_parser.go +++ b/app/middleware/user_parser.go @@ -3,34 +3,14 @@ package middleware import ( "net/http" - "github.com/coreos/go-oidc/v3/oidc" + "github.com/xlgmokha/x/pkg/log" "github.com/xlgmokha/x/pkg/mapper" - "github.com/xlgmokha/x/pkg/x" - "gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/app/cfg" "gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/app/domain" - "gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/pkg/pls" ) -func UserParser(db domain.Repository[*domain.User]) RequestParser[*domain.User] { +func UserParser() RequestParser[*domain.User] { return func(r *http.Request) *domain.User { - subject := r.Header.Get("x-jwt-claim-sub") - user := db.Find(r.Context(), domain.ID(subject)) - - if !x.IsPresent(user) { - idToken := cfg.IDToken.From(r.Context()) - - if x.IsZero(idToken) { - return nil - } - - user = db.Find(r.Context(), domain.ID(idToken.Subject)) - if !x.IsPresent(user) { - user = mapper.MapFrom[*oidc.IDToken, *domain.User](idToken) - if err := db.Save(r.Context(), user); err != nil { - pls.LogError(r.Context(), err) - } - } - } - return user + log.WithFields(r.Context(), log.Fields{"header": r.Header}) + return mapper.MapFrom[http.Header, *domain.User](r.Header) } } |
