summaryrefslogtreecommitdiff
path: root/app/middleware/init.go
diff options
context:
space:
mode:
Diffstat (limited to 'app/middleware/init.go')
-rw-r--r--app/middleware/init.go35
1 files changed, 13 insertions, 22 deletions
diff --git a/app/middleware/init.go b/app/middleware/init.go
index 874ca52..5bf84f6 100644
--- a/app/middleware/init.go
+++ b/app/middleware/init.go
@@ -1,33 +1,24 @@
package middleware
import (
- "github.com/coreos/go-oidc/v3/oidc"
+ "net/http"
+
"github.com/xlgmokha/x/pkg/mapper"
+ "github.com/xlgmokha/x/pkg/x"
"gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/app/domain"
)
-type CustomClaims struct {
- Name string `json:"name"`
- Nickname string `json:"nickname"`
- Email string `json:"email"`
- ProfileURL string `json:"profile"`
- Picture string `json:"picture"`
- Groups []string `json:"groups_direct"`
-}
-
func init() {
- mapper.Register(func(idToken *oidc.IDToken) *domain.User {
- customClaims := &CustomClaims{}
- if err := idToken.Claims(customClaims); err != nil {
- return &domain.User{ID: domain.ID(idToken.Subject)}
- }
-
- return &domain.User{
- ID: domain.ID(idToken.Subject),
- Username: customClaims.Nickname,
- Email: customClaims.Email,
- ProfileURL: customClaims.ProfileURL,
- Picture: customClaims.Picture,
+ mapper.Register(func(h http.Header) *domain.User {
+ subject := h.Get("x-jwt-claim-sub")
+ if x.IsPresent(subject) {
+ return &domain.User{
+ ID: domain.ID(subject),
+ Username: h.Get("x-jwt-claim-username"),
+ ProfileURL: h.Get("x-jwt-claim-profile-url"),
+ Picture: h.Get("x-jwt-claim-picture-url"),
+ }
}
+ return nil
})
}