···57 }
5859 var jwks jwk.Key
60- if metadata.JWKS != nil {
61 // TODO: this is kinda bad but whatever for now. there could obviously be more than one jwk, and we need to
62 // make sure we use the right one
63- k, err := helpers.ParseJWKFromBytes((*metadata.JWKS)[0])
64 if err != nil {
65 return nil, err
66 }
00000067 jwks = k
68 } else if metadata.JWKSURI != nil {
69 maybeJwks, err := cm.getClientJwks(ctx, clientId, *metadata.JWKSURI)
···72 }
7374 jwks = maybeJwks
0075 }
7677 return &Client{
···262 return nil, errors.New("private_key_jwt auth method requires jwks or jwks_uri")
263 }
264265- if metadata.JWKS != nil && len(*metadata.JWKS) == 0 {
266 return nil, errors.New("private_key_jwt auth method requires atleast one key in jwks")
267 }
268
···57 }
5859 var jwks jwk.Key
60+ if metadata.JWKS != nil && len(metadata.JWKS.Keys) > 0 {
61 // TODO: this is kinda bad but whatever for now. there could obviously be more than one jwk, and we need to
62 // make sure we use the right one
63+ b, err := json.Marshal(metadata.JWKS.Keys[0])
64 if err != nil {
65 return nil, err
66 }
67+68+ k, err := helpers.ParseJWKFromBytes(b)
69+ if err != nil {
70+ return nil, err
71+ }
72+73 jwks = k
74 } else if metadata.JWKSURI != nil {
75 maybeJwks, err := cm.getClientJwks(ctx, clientId, *metadata.JWKSURI)
···78 }
7980 jwks = maybeJwks
81+ } else {
82+ return nil, fmt.Errorf("no valid jwks found in oauth client metadata")
83 }
8485 return &Client{
···270 return nil, errors.New("private_key_jwt auth method requires jwks or jwks_uri")
271 }
272273+ if metadata.JWKS != nil && len(metadata.JWKS.Keys) == 0 {
274 return nil, errors.New("private_key_jwt auth method requires atleast one key in jwks")
275 }
276