module JSON::JWK::Set::Fetcher
Public Class Methods
cache()
click to toggle source
# File lib/json/jwk/set/fetcher.rb, line 56 def self.cache @@cache end
cache=(cache)
click to toggle source
# File lib/json/jwk/set/fetcher.rb, line 53 def self.cache=(cache) @@cache = cache end
debug() { || ... }
click to toggle source
# File lib/json/jwk/set/fetcher.rb, line 31 def self.debug(&block) original = self.debugging? debug! yield ensure self.debugging = original end
debug!()
click to toggle source
# File lib/json/jwk/set/fetcher.rb, line 28 def self.debug! self.debugging = true end
debugging=(boolean)
click to toggle source
# File lib/json/jwk/set/fetcher.rb, line 25 def self.debugging=(boolean) @@debugging = boolean end
debugging?()
click to toggle source
# File lib/json/jwk/set/fetcher.rb, line 22 def self.debugging? @@debugging end
fetch(jwks_uri, kid:, auto_detect: true, **options)
click to toggle source
# File lib/json/jwk/set/fetcher.rb, line 61 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(jwks_uri).body end ) ) cache.delete(cache_key, options) if jwks[kid].blank? if auto_detect jwks[kid] or raise KidNotFound else jwks end end
http_client()
click to toggle source
# File lib/json/jwk/set/fetcher.rb, line 40 def self.http_client Faraday.new(headers: {user_agent: "JSON::JWK::Set::Fetcher #{VERSION}"}) do |faraday| faraday.response :raise_error faraday.response :follow_redirects faraday.response :logger, JSON::JWK::Set::Fetcher.logger if debugging? faraday.adapter Faraday.default_adapter http_config.try(:call, faraday) end end
http_config(&block)
click to toggle source
# File lib/json/jwk/set/fetcher.rb, line 49 def self.http_config(&block) @@http_config ||= block end
logger()
click to toggle source
# File lib/json/jwk/set/fetcher.rb, line 13 def self.logger @@logger end
logger=(logger)
click to toggle source
# File lib/json/jwk/set/fetcher.rb, line 16 def self.logger=(logger) @@logger = logger end