Class: RailsAiBridge::Mcp::AuthResult

Inherits:
Data
  • Object
show all
Defined in:
lib/rails_ai_bridge/mcp/auth_result.rb

Overview

Immutable result returned by every auth strategy. Strategies never raise for expected failures — they return an +AuthResult+ instead.

Examples:

result = strategy.authenticate(request)
render_unauthorized unless result.success?

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#contextObject (readonly)

Returns the value of attribute context

Returns:

  • (Object)

    the current value of context



11
12
13
# File 'lib/rails_ai_bridge/mcp/auth_result.rb', line 11

def context
  @context
end

#errorObject (readonly)

Returns the value of attribute error

Returns:

  • (Object)

    the current value of error



11
12
13
# File 'lib/rails_ai_bridge/mcp/auth_result.rb', line 11

def error
  @error
end

#successObject (readonly)

Returns the value of attribute success

Returns:

  • (Object)

    the current value of success



11
12
13
# File 'lib/rails_ai_bridge/mcp/auth_result.rb', line 11

def success
  @success
end

Class Method Details

.fail(error = :unauthorized) ⇒ AuthResult

Builds a failure result.

Parameters:

  • error (Symbol, String, nil) (defaults to: :unauthorized)

    machine-readable reason (e.g. +:missing_token+, +:wrong_token+, +:decode_error+)

Returns:



34
35
36
# File 'lib/rails_ai_bridge/mcp/auth_result.rb', line 34

def self.fail(error = :unauthorized)
  new(success: false, context: nil, error: error)
end

.ok(context = nil) ⇒ AuthResult

Builds a successful result, optionally carrying caller-provided context. The meaning of +context+ depends on the strategy: +:static_bearer+ (static token), a decoded JWT payload Hash, a resolved user object, or +nil+. Callers that only need to gate access can ignore +context+ and check #success? only.

Parameters:

  • context (Object, nil) (defaults to: nil)

    arbitrary data from the strategy

Returns:



25
26
27
# File 'lib/rails_ai_bridge/mcp/auth_result.rb', line 25

def self.ok(context = nil)
  new(success: true, context: context, error: nil)
end

Instance Method Details

#failure?Boolean

Returns +true+ when authentication failed.

Returns:

  • (Boolean)

    +true+ when authentication failed



16
# File 'lib/rails_ai_bridge/mcp/auth_result.rb', line 16

def failure? = !success

#success?Boolean

Returns +true+ when authentication succeeded.

Returns:

  • (Boolean)

    +true+ when authentication succeeded



13
# File 'lib/rails_ai_bridge/mcp/auth_result.rb', line 13

def success? = success