diff --git a/server/server_test.go b/server/server_test.go index c8be562678a1f..67bfe2f98dee4 100644 --- a/server/server_test.go +++ b/server/server_test.go @@ -724,6 +724,22 @@ func TestGetClaims(t *testing.T) { UserInfoCacheExpiration: "5m", }, }, + { + test: "GetClaimsWithGroupsString", + claims: jwt.MapClaims{ + "aud": common.ArgoCDClientAppID, + "exp": defaultExpiry, + "sub": "randomUser", + "groups": "group1", + }, + expectedErrorContains: "", + expectedClaims: jwt.MapClaims{ + "aud": common.ArgoCDClientAppID, + "exp": defaultExpiryUnix, + "sub": "randomUser", + "groups": "group1", + }, + }, } for _, testData := range tests { diff --git a/util/claims/claims.go b/util/claims/claims.go index 2b77e53b5b9f8..ce6fb560874f7 100644 --- a/util/claims/claims.go +++ b/util/claims/claims.go @@ -9,10 +9,9 @@ import ( // ArgoClaims defines the claims structure based on Dex's documented claims type ArgoClaims struct { jwt.RegisteredClaims - Email string `json:"email,omitempty"` - EmailVerified bool `json:"email_verified,omitempty"` - Name string `json:"name,omitempty"` - Groups []string `json:"groups,omitempty"` + Email string `json:"email,omitempty"` + EmailVerified bool `json:"email_verified,omitempty"` + Name string `json:"name,omitempty"` // As per Dex docs, federated_claims has a specific structure FederatedClaims *FederatedClaims `json:"federated_claims,omitempty"` } diff --git a/util/claims/claims_test.go b/util/claims/claims_test.go index 6b9a3fc8a5291..f6cfe59e04f23 100644 --- a/util/claims/claims_test.go +++ b/util/claims/claims_test.go @@ -134,10 +134,6 @@ func TestMapClaimsToArgoClaims(t *testing.T) { Email: "email@test.com", EmailVerified: true, Name: "the-name", - Groups: []string{ - "my-org:my-team2", - "my-org:my-team1", - }, FederatedClaims: &FederatedClaims{ ConnectorID: "my-connector", UserID: "user-id",