Skip to content

Commit 3931e59

Browse files
authored
fix: SSO with Jumpcloud "email_verified" field argoproj#12257 (argoproj#12318)
Signed-off-by: Son Bui <[email protected]>
1 parent de53da8 commit 3931e59

File tree

2 files changed

+27
-1
lines changed

2 files changed

+27
-1
lines changed

server/auth/types/claims.go

+5-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ type Claims struct {
1212
jwt.Claims
1313
Groups []string `json:"groups,omitempty"`
1414
Email string `json:"email,omitempty"`
15-
EmailVerified bool `json:"email_verified,omitempty"`
15+
EmailVerified bool `json:"-"`
1616
Name string `json:"name,omitempty"`
1717
ServiceAccountName string `json:"service_account_name,omitempty"`
1818
ServiceAccountNamespace string `json:"service_account_namespace,omitempty"`
@@ -52,6 +52,10 @@ func (c *Claims) UnmarshalJSON(data []byte) error {
5252
return err
5353
}
5454

55+
if localClaim.RawClaim["email_verified"] == true || localClaim.RawClaim["email_verified"] == "true" {
56+
localClaim.EmailVerified = true
57+
}
58+
5559
*c = Claims(localClaim)
5660
return nil
5761
}

server/auth/types/claims_test.go

+22
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,28 @@ func TestUnmarshalJSON(t *testing.T) {
134134
},
135135
},
136136
},
137+
{
138+
description: "email verify field as string",
139+
data: `{"email_verified":"true"}`,
140+
expectedErr: nil,
141+
expectedClaims: &Claims{
142+
RawClaim: map[string]interface{}{
143+
"email_verified": "true",
144+
},
145+
EmailVerified: true,
146+
},
147+
},
148+
{
149+
description: "email verify field as bool",
150+
data: `{"email_verified":true}`,
151+
expectedErr: nil,
152+
expectedClaims: &Claims{
153+
RawClaim: map[string]interface{}{
154+
"email_verified": true,
155+
},
156+
EmailVerified: true,
157+
},
158+
},
137159
{
138160
description: "unmarshal no data",
139161
data: `{}`,

0 commit comments

Comments
 (0)