mirror of
https://github.com/therootcompany/golib.git
synced 2026-03-28 18:15:30 +00:00
test(jwt): assert scope array is invalid (issuer []string bug trap)
SpaceDelimited must unmarshal from a space-delimited string per RFC 6749 §3.3, not a JSON array. If a token arrives with "scope":[] the issuer has a bug (e.g. using []string instead of SpaceDelimited in its claims struct). This test documents that expectation and will catch any attempt to silently accept the invalid form.
This commit is contained in:
parent
0fc1ae4da8
commit
95cf5941c4
@ -226,6 +226,18 @@ func TestCov_SpaceDelimited_UnmarshalJSON(t *testing.T) {
|
||||
t.Fatal("expected error")
|
||||
}
|
||||
})
|
||||
// Scope must be a space-delimited string per RFC 6749 §3.3, not a JSON array.
|
||||
// If a token arrives with "scope":[] it means the issuer has a bug (e.g. using
|
||||
// []string instead of SpaceDelimited in its claims struct).
|
||||
t.Run("array_is_invalid", func(t *testing.T) {
|
||||
var s SpaceDelimited
|
||||
if err := json.Unmarshal([]byte(`[]`), &s); err == nil {
|
||||
t.Fatal("expected error for array-typed scope; issuer may have a []string bug")
|
||||
}
|
||||
if err := json.Unmarshal([]byte(`["openid","profile"]`), &s); err == nil {
|
||||
t.Fatal("expected error for array-typed scope; issuer may have a []string bug")
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func TestCov_SpaceDelimited_MarshalJSON(t *testing.T) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user