Skip to content

Commit 37a4631

Browse files
Export Handler.UserClaims, so this provider can be swapped with custom one.
1 parent d755f6f commit 37a4631

2 files changed

Lines changed: 8 additions & 7 deletions

File tree

login/handler.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@ const contentTypeJWT = "application/jwt"
2020
const contentTypeJSON = "application/json"
2121
const contentTypePlain = "text/plain"
2222

23-
type userClaimsFunc func(userInfo model.UserInfo) (jwt.Claims, error)
23+
// UserClaimsFunc returns jwt.Claims
24+
type UserClaimsFunc func(userInfo model.UserInfo) (jwt.Claims, error)
2425

2526
// Handler is the mail login handler.
2627
// It serves the login ressource and does the authentication against the backends or oauth provider.
@@ -31,7 +32,7 @@ type Handler struct {
3132
signingMethod jwt.SigningMethod
3233
signingKey interface{}
3334
signingVerifyKey interface{}
34-
userClaims userClaimsFunc
35+
UserClaims UserClaimsFunc
3536
}
3637

3738
// NewHandler creates a login handler based on the supplied configuration.
@@ -70,7 +71,7 @@ func NewHandler(config *Config) (*Handler, error) {
7071
backends: backends,
7172
config: config,
7273
oauth: oauth,
73-
userClaims: userClaims.Claims,
74+
UserClaims: userClaims.Claims,
7475
}, nil
7576
}
7677

@@ -277,9 +278,9 @@ func (h *Handler) respondAuthenticatedHTML(w http.ResponseWriter, r *http.Reques
277278

278279
func (h *Handler) createToken(userInfo model.UserInfo) (string, error) {
279280
var claims jwt.Claims = userInfo
280-
if h.userClaims != nil {
281+
if h.UserClaims != nil {
281282
var err error
282-
claims, err = h.userClaims(userInfo)
283+
claims, err = h.UserClaims(userInfo)
283284
if err != nil {
284285
return "", err
285286
}

login/handler_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -495,7 +495,7 @@ func TestHandler_ReturnUserInfoJSON_CustomClaims(t *testing.T) {
495495
h := testHandler()
496496
input := model.UserInfo{Sub: "marvin", Expiry: time.Now().Add(time.Second).Unix()}
497497
claims := customClaims{"sub": "marvin", "exp": json.Number(strconv.FormatInt(input.Expiry, 10)), "foo": "bar"}
498-
h.userClaims = func(userInfo model.UserInfo) (jwt.Claims, error) {
498+
h.UserClaims = func(userInfo model.UserInfo) (jwt.Claims, error) {
499499
return claims, nil
500500
}
501501
token, err := h.createToken(input)
@@ -667,7 +667,7 @@ func TestHandler_getToken_InvalidNoToken(t *testing.T) {
667667
func TestHandler_getToken_WithUserClaims(t *testing.T) {
668668
h := testHandler()
669669
input := model.UserInfo{Sub: "marvin", Expiry: time.Now().Add(time.Second).Unix()}
670-
h.userClaims = func(userInfo model.UserInfo) (jwt.Claims, error) {
670+
h.UserClaims = func(userInfo model.UserInfo) (jwt.Claims, error) {
671671
return customClaims{"sub": "Zappod", "origin": "fake", "exp": userInfo.Expiry}, nil
672672
}
673673
token, err := h.createToken(input)

0 commit comments

Comments
 (0)