summaryrefslogtreecommitdiff
path: root/pkg/web/middleware/id_token.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/web/middleware/id_token.go')
-rw-r--r--pkg/web/middleware/id_token.go56
1 files changed, 0 insertions, 56 deletions
diff --git a/pkg/web/middleware/id_token.go b/pkg/web/middleware/id_token.go
deleted file mode 100644
index a32c77b..0000000
--- a/pkg/web/middleware/id_token.go
+++ /dev/null
@@ -1,56 +0,0 @@
-package middleware
-
-import (
- "net/http"
-
- "github.com/xlgmokha/x/pkg/log"
- "github.com/xlgmokha/x/pkg/x"
- "gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/pkg/key"
- "gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/pkg/oidc"
-)
-
-type TokenParser func(*http.Request) oidc.RawToken
-
-func IDTokenFromSessionCookie(r *http.Request) oidc.RawToken {
- cookies := r.CookiesNamed("session")
-
- if len(cookies) != 1 {
- return ""
- }
-
- tokens, err := oidc.TokensFromBase64String(cookies[0].Value)
- if err != nil {
- log.WithFields(r.Context(), log.Fields{"error": err})
- return ""
- }
-
- return tokens.IDToken
-}
-
-func IDToken(cfg *oidc.OpenID) func(http.Handler) http.Handler {
- parsers := []TokenParser{IDTokenFromSessionCookie}
-
- return func(next http.Handler) http.Handler {
- return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
- for _, parser := range parsers {
- rawIDToken := parser(r)
- if !x.IsZero(rawIDToken) {
- verifier := cfg.Provider.VerifierContext(r.Context(), cfg.OIDCConfig)
- idToken, err := verifier.Verify(r.Context(), rawIDToken.String())
- if err != nil {
- log.WithFields(r.Context(), log.Fields{"error": err})
- } else {
- log.WithFields(r.Context(), log.Fields{"id_token": idToken})
- next.ServeHTTP(
- w,
- r.WithContext(key.IDToken.With(r.Context(), idToken)),
- )
- return
- }
- }
- }
-
- next.ServeHTTP(w, r)
- })
- }
-}