class Rails::Vault::JWT::KeyProvider

Public Class Methods

new(cache = nil) click to toggle source
# File lib/rails/vault/jwt/key_provider.rb, line 10
def initialize(cache = nil)
  @cache = cache || Rails::Vault::JWT.config.cache
end

Public Instance Methods

fetch_keys(issuer) click to toggle source
# File lib/rails/vault/jwt/key_provider.rb, line 26
def fetch_keys(issuer)
  raw = Net::HTTP.get URI.parse("#{issuer}/.well-known/keys")
  JSON.parse raw, symbolize_names: true
end
keys(issuer) click to toggle source
# File lib/rails/vault/jwt/key_provider.rb, line 14
def keys(issuer)
  raise InvalidIssuer if JWT.config.valid_issuers.any? && !(JWT.config.valid_issuers.include? issuer)

  if @cache.respond_to?(:fetch)
    @cache.fetch("keys/#{issuer}", expires_in: 5.minutes) do
      fetch_keys issuer
    end
  else
    fetch_keys issuer
  end
end