Class: OpenIDConnect::Discovery::Provider::Config::Response
- Inherits:
-
Object
- Object
- OpenIDConnect::Discovery::Provider::Config::Response
- Includes:
- ActiveModel::Validations, AttrOptional, AttrRequired
- Defined in:
- lib/openid_connect/discovery/provider/config/response.rb
Instance Attribute Summary collapse
-
#expected_issuer ⇒ Object
Returns the value of attribute expected_issuer.
-
#raw ⇒ Object
readonly
Returns the value of attribute raw.
Instance Method Summary collapse
- #as_json(options = {}) ⇒ Object
-
#initialize(hash) ⇒ Response
constructor
A new instance of Response.
- #jwk(kid) ⇒ Object
- #jwks ⇒ Object
- #public_keys ⇒ Object
- #validate! ⇒ Object
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_issuer ⇒ Object
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 |
#raw ⇒ Object (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( = {}) 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 |
#jwks ⇒ Object
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_keys ⇒ Object
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 |