Class: OAuth2::MCP::AuthorizationResult

Inherits:
Object
  • Object
show all
Defined in:
lib/oauth2/mcp.rb,
sig/oauth2/mcp.rbs

Overview

Result object returned by resource-server authorization checks.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(allowed:, **attributes) ⇒ AuthorizationResult

Returns a new instance of AuthorizationResult.

Parameters:

  • allowed: (Boolean)
  • attributes (Object)


373
374
375
376
377
378
379
380
381
382
# File 'lib/oauth2/mcp.rb', line 373

def initialize(allowed:, **attributes)
  @allowed = allowed
  @claims = attributes[:claims]
  @capabilities = Array(attributes[:capabilities]).map(&:to_s).freeze
  @status = attributes[:status]
  @error = attributes[:error]
  @error_description = attributes[:error_description]
  @required_scopes = Array(attributes[:required_scopes]).map(&:to_s).freeze
  @challenge = attributes[:challenge]
end

Instance Attribute Details

#capabilities ⇒ Array[String] (readonly)

Returns the value of attribute capabilities.

Returns:

  • (Array[String])


354
355
356
# File 'lib/oauth2/mcp.rb', line 354

def capabilities
  @capabilities
end

#challenge ⇒ BearerChallenge? (readonly)

Returns the value of attribute challenge.

Returns:



354
355
356
# File 'lib/oauth2/mcp.rb', line 354

def challenge
  @challenge
end

#claims ⇒ TokenClaims? (readonly)

Returns the value of attribute claims.

Returns:



354
355
356
# File 'lib/oauth2/mcp.rb', line 354

def claims
  @claims
end

#error ⇒ String? (readonly)

Returns the value of attribute error.

Returns:

  • (String, nil)


354
355
356
# File 'lib/oauth2/mcp.rb', line 354

def error
  @error
end

#error_description ⇒ String? (readonly)

Returns the value of attribute error_description.

Returns:

  • (String, nil)


354
355
356
# File 'lib/oauth2/mcp.rb', line 354

def error_description
  @error_description
end

#required_scopes ⇒ Array[String] (readonly)

Returns the value of attribute required_scopes.

Returns:

  • (Array[String])


354
355
356
# File 'lib/oauth2/mcp.rb', line 354

def required_scopes
  @required_scopes
end

#status ⇒ Integer? (readonly)

Returns the value of attribute status.

Returns:

  • (Integer, nil)


354
355
356
# File 'lib/oauth2/mcp.rb', line 354

def status
  @status
end

Class Method Details

.allow(claims:, capabilities: []) ⇒ AuthorizationResult

Parameters:

  • claims: (TokenClaims)
  • capabilities: (Array[String]) (defaults to: [])

Returns:



357
358
359
# File 'lib/oauth2/mcp.rb', line 357

def allow(claims:, capabilities: [])
  new(allowed: true, claims: claims, capabilities: capabilities)
end

.deny(status:, error:, error_description:, required_scopes:, challenge:) ⇒ Object



361
362
363
364
365
366
367
368
369
370
# File 'lib/oauth2/mcp.rb', line 361

def deny(status:, error:, error_description:, required_scopes:, challenge:)
  new(
    allowed: false,
    status: status,
    error: error,
    error_description: error_description,
    required_scopes: required_scopes,
    challenge: challenge
  )
end

Instance Method Details

#allowed? ⇒ Boolean

Returns:

  • (Boolean)


384
385
386
# File 'lib/oauth2/mcp.rb', line 384

def allowed?
  @allowed
end

#headers ⇒ Hash[String, String]

Returns:

  • (Hash[String, String])


388
389
390
391
392
# File 'lib/oauth2/mcp.rb', line 388

def headers
  return {} unless challenge

  {"WWW-Authenticate" => challenge.to_header}
end