Class: OpenIDConnect::Discovery::Provider::Config::Response

Inherits:
Object
  • Object
show all
Includes:
ActiveModel::Validations, AttrOptional, AttrRequired
Defined in:
lib/openid_connect/discovery/provider/config/response.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(hash) ⇒ Response

Returns a new instance of Response.



63
64
65
66
67
68
# File 'lib/openid_connect/discovery/provider/config/response.rb', line 63

def initialize(hash)
  (required_attributes + optional_attributes).each do |key|
    self.send "#{key}=", hash[key]
  end
  @raw = hash
end

Instance Attribute Details

#expected_issuerObject

Returns the value of attribute expected_issuer.



10
11
12
# File 'lib/openid_connect/discovery/provider/config/response.rb', line 10

def expected_issuer
  @expected_issuer
end

#rawObject (readonly)

Returns the value of attribute raw.



9
10
11
# File 'lib/openid_connect/discovery/provider/config/response.rb', line 9

def raw
  @raw
end

Instance Method Details

#as_json(options = {}) ⇒ Object



70
71
72
73
74
75
76
77
# File 'lib/openid_connect/discovery/provider/config/response.rb', line 70

def as_json(options = {})
  validate!
  (required_attributes + optional_attributes).inject({}) do |hash, _attr_|
    value = self.send _attr_
    hash.merge! _attr_ => value unless value.nil?
    hash
  end
end

#jwk(kid) ⇒ Object



88
89
90
91
# File 'lib/openid_connect/discovery/provider/config/response.rb', line 88

def jwk(kid)
  @jwks ||= {}
  @jwks[kid] ||= JSON::JWK::Set::Fetcher.fetch(jwks_uri, kid: kid)
end

#jwksObject



83
84
85
86
# File 'lib/openid_connect/discovery/provider/config/response.rb', line 83

def jwks
  @jwks ||= OpenIDConnect.http_client.get(jwks_uri).body.with_indifferent_access
  JSON::JWK::Set.new @jwks[:keys]
end

#public_keysObject



93
94
95
# File 'lib/openid_connect/discovery/provider/config/response.rb', line 93

def public_keys
  @public_keys ||= jwks.collect(&:to_key)
end

#validate!Object



79
80
81
# File 'lib/openid_connect/discovery/provider/config/response.rb', line 79

def validate!
  valid? or raise ValidationFailed.new(self)
end