package middleware import ( "net/http" "github.com/xlgmokha/x/pkg/x" "gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/pkg/oidc" "gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/pkg/pls" "gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/pkg/web" ) type TokenParser x.Mapper[*http.Request, oidc.RawToken] func IDTokenFromSessionCookie(r *http.Request) oidc.RawToken { cookies := r.CookiesNamed("session") if len(cookies) != 1 { return "" } value := web.CookieValueFrom(cookies[0]) tokens, err := oidc.TokensFromBase64String(value) if err != nil { pls.LogError(r.Context(), err) return "" } return tokens.IDToken }