Module: JSON::JWK::Set::Fetcher
- Defined in:
- lib/json/jwk/set/fetcher.rb,
lib/json/jwk/set/fetcher/debugger/request_filter.rb
Defined Under Namespace
Modules: Debugger
Classes: Cache
Class Method Summary
collapse
Class Method Details
.cache ⇒ Object
58
59
60
|
# File 'lib/json/jwk/set/fetcher.rb', line 58
def self.cache
@@cache
end
|
.cache=(cache) ⇒ Object
55
56
57
|
# File 'lib/json/jwk/set/fetcher.rb', line 55
def self.cache=(cache)
@@cache = cache
end
|
.debug(&block) ⇒ Object
29
30
31
32
33
34
35
|
# File 'lib/json/jwk/set/fetcher.rb', line 29
def self.debug(&block)
original = self.debugging?
debug!
yield
ensure
self.debugging = original
end
|
.debug! ⇒ Object
26
27
28
|
# File 'lib/json/jwk/set/fetcher.rb', line 26
def self.debug!
self.debugging = true
end
|
.debugging=(boolean) ⇒ Object
23
24
25
|
# File 'lib/json/jwk/set/fetcher.rb', line 23
def self.debugging=(boolean)
@@debugging = boolean
end
|
.debugging? ⇒ Boolean
20
21
22
|
# File 'lib/json/jwk/set/fetcher.rb', line 20
def self.debugging?
@@debugging
end
|
.fetch(jwks_uri, kid:, auto_detect: true, **options) ⇒ Object
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
# File 'lib/json/jwk/set/fetcher.rb', line 63
def self.fetch(jwks_uri, kid:, auto_detect: true, **options)
cache_key = [
'json:jwk:set',
OpenSSL::Digest::MD5.hexdigest(jwks_uri),
kid
].collect(&:to_s).join(':')
jwks = Set.new(
JSON.parse(
cache.fetch(cache_key, options) do
http_client.get_content(jwks_uri)
end
)
)
if auto_detect
jwks[kid] or raise KidNotFound
else
jwks
end
end
|
.http_client ⇒ Object
38
39
40
41
42
43
44
45
46
47
48
49
50
|
# File 'lib/json/jwk/set/fetcher.rb', line 38
def self.http_client
_http_client_ = HTTPClient.new(
agent_name: "JSON::JWK::Set::Fetcher (#{JSON::JWT::VERSION})"
)
_http_client_.ssl_config.clear_cert_store
_http_client_.ssl_config.cert_store.set_default_paths
_http_client_.request_filter << Debugger::RequestFilter.new if debugging?
http_config.try(:call, _http_client_)
_http_client_
end
|
.http_config(&block) ⇒ Object
51
52
53
|
# File 'lib/json/jwk/set/fetcher.rb', line 51
def self.http_config(&block)
@@http_config ||= block
end
|
.logger ⇒ Object
11
12
13
|
# File 'lib/json/jwk/set/fetcher.rb', line 11
def self.logger
@@logger
end
|
.logger=(logger) ⇒ Object
14
15
16
|
# File 'lib/json/jwk/set/fetcher.rb', line 14
def self.logger=(logger)
@@logger = logger
end
|