Class: OAuth2::MCP::OIDCDiscovery
- Inherits:
-
Object
- Object
- OAuth2::MCP::OIDCDiscovery
- Defined in:
- lib/oauth2/mcp.rb
Overview
Fetches OIDC provider metadata and JWKS for MCP token validation.
Constant Summary collapse
- WELL_KNOWN_PATH =
"/.well-known/openid-configuration"
Instance Attribute Summary collapse
-
#client ⇒ Object
readonly
Returns the value of attribute client.
-
#issuer ⇒ Object
readonly
Returns the value of attribute issuer.
Instance Method Summary collapse
-
#configuration ⇒ Object
-
#initialize(issuer:, client: nil) ⇒ OIDCDiscovery
constructor
A new instance of OIDCDiscovery.
-
#jwks ⇒ Object
-
#jwt_validator(audience:, algorithms: nil, leeway: 60) ⇒ Object
Constructor Details
#initialize(issuer:, client: nil) ⇒ OIDCDiscovery
Returns a new instance of OIDCDiscovery.
181 182 183 184 |
# File 'lib/oauth2/mcp.rb', line 181 def initialize(issuer:, client: nil) @issuer = issuer.to_s.delete_suffix("/") @client = client || OAuth2::Client.new(nil, nil, site: @issuer, raise_errors: true) end |
Instance Attribute Details
#client ⇒ Object (readonly)
Returns the value of attribute client.
179 180 181 |
# File 'lib/oauth2/mcp.rb', line 179 def client @client end |
#issuer ⇒ Object (readonly)
Returns the value of attribute issuer.
179 180 181 |
# File 'lib/oauth2/mcp.rb', line 179 def issuer @issuer end |
Instance Method Details
#configuration ⇒ Object
186 187 188 |
# File 'lib/oauth2/mcp.rb', line 186 def configuration @configuration ||= fetch_json(WELL_KNOWN_PATH) end |
#jwks ⇒ Object
190 191 192 |
# File 'lib/oauth2/mcp.rb', line 190 def jwks @jwks ||= fetch_json(configuration.fetch("jwks_uri")) end |
#jwt_validator(audience:, algorithms: nil, leeway: 60) ⇒ Object
194 195 196 197 198 199 200 201 202 |
# File 'lib/oauth2/mcp.rb', line 194 def jwt_validator(audience:, algorithms: nil, leeway: 60) JWTValidator.new( jwks: jwks, issuer: issuer, audience: audience, algorithms: algorithms || default_algorithms, leeway: leeway, ) end |