Skip to content

Commit 3db2185

Browse files
committed
change error name & no cache on error
1 parent 9240bc4 commit 3db2185

File tree

2 files changed

+8
-5
lines changed

2 files changed

+8
-5
lines changed

lib/json/jwk/set/fetcher.rb

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ module JSON
22
class JWK
33
class Set
44
module Fetcher
5-
class MalformedJWKSet < JWT::Exception; end
5+
class UnexpectedFormat < JWT::Exception; end
66

77
class Cache
88
def fetch(cache_key, options = {})
@@ -73,7 +73,10 @@ def self.fetch(jwks_uri, kid:, auto_detect: true, **options)
7373
end
7474
)
7575

76-
raise MalformedJWKSet, "Malformed JWK Set: #{parsed_jwks.inspect}" unless parsed_jwks.is_a?(Hash) && parsed_jwks['keys'].is_a?(Array)
76+
unless parsed_jwks.is_a?(Hash) && parsed_jwks['keys'].is_a?(Array)
77+
cache.delete(cache_key, options)
78+
raise UnexpectedFormat
79+
end
7780

7881
jwks = Set.new(parsed_jwks)
7982
cache.delete(cache_key, options) if jwks[kid].blank?

spec/json/jwk/set/fetcher_spec.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ def fetch(cache_key, options = {})
6969
end
7070
end
7171

72-
def delete(cache_key)
72+
def delete(cache_key, options = nil)
7373
# ignore
7474
end
7575
end
@@ -112,13 +112,13 @@ def delete(cache_key)
112112
end
113113

114114
context "when the JWKS uri returns a structure that's not a valid JWK Set" do
115-
it "raises a JSON::JWK::Set::Fetcher::MalformedJWKSet error" do
115+
it "raises a JSON::JWK::Set::Fetcher::UnexpectedFormat error" do
116116
stub_request(:get, jwks_uri).to_return(
117117
status: 200,
118118
body: '"hello there"' # Note that this is valid JSON, but not a valid JWK Set
119119
)
120120

121-
expect { subject }.to raise_error(JSON::JWK::Set::Fetcher::MalformedJWKSet)
121+
expect { subject }.to raise_error(JSON::JWK::Set::Fetcher::UnexpectedFormat)
122122
end
123123
end
124124

0 commit comments

Comments
 (0)