Class: OAuth2::MCP::RackMiddleware
- Inherits:
-
Object
- Object
- OAuth2::MCP::RackMiddleware
- Defined in:
- lib/oauth2/mcp.rb
Overview
Rack-compatible middleware for protecting MCP HTTP endpoints.
Constant Summary collapse
- AUTHORIZATION_ENV_KEY =
"oauth2.mcp.authorization"
Instance Attribute Summary collapse
-
#app ⇒ Object
readonly
Returns the value of attribute app.
-
#resource_server ⇒ Object
readonly
Returns the value of attribute resource_server.
-
#scopes ⇒ Object
readonly
Returns the value of attribute scopes.
Instance Method Summary collapse
-
#call(env) ⇒ Object
-
#initialize(app, resource_server:, scopes: []) ⇒ RackMiddleware
constructor
A new instance of RackMiddleware.
Constructor Details
#initialize(app, resource_server:, scopes: []) ⇒ RackMiddleware
Returns a new instance of RackMiddleware.
327 328 329 330 331 |
# File 'lib/oauth2/mcp.rb', line 327 def initialize(app, resource_server:, scopes: []) @app = app @resource_server = resource_server @scopes = scopes end |
Instance Attribute Details
#app ⇒ Object (readonly)
Returns the value of attribute app.
325 326 327 |
# File 'lib/oauth2/mcp.rb', line 325 def app @app end |
#resource_server ⇒ Object (readonly)
Returns the value of attribute resource_server.
325 326 327 |
# File 'lib/oauth2/mcp.rb', line 325 def resource_server @resource_server end |
#scopes ⇒ Object (readonly)
Returns the value of attribute scopes.
325 326 327 |
# File 'lib/oauth2/mcp.rb', line 325 def scopes @scopes end |
Instance Method Details
#call(env) ⇒ Object
333 334 335 336 337 338 339 |
# File 'lib/oauth2/mcp.rb', line 333 def call(env) result = resource_server.(request: env, scopes: scopes_for(env)) return (result) unless result.allowed? env[AUTHORIZATION_ENV_KEY] = result app.call(env) end |