Parent

Included Modules

Class/Module Index [+]

Quicksearch

Merb::AuthenticationMixin::BasicAuthentication

Public Class Methods

new(controller, realm = "Application", &authenticator) click to toggle source

:api: private

# File lib/merb-core/controller/mixins/authentication.rb, line 88
def initialize(controller, realm = "Application", &authenticator)
  @controller = controller
  @realm = realm
  @auth = Rack::Auth::Basic::Request.new(@controller.request.env)
  authenticate_or_request(&authenticator) if authenticator
end

Public Instance Methods

authenticate(&authenticator) click to toggle source

Determines whether or not the user is authenticated using the criteria in the provided authenticator block.

Parameters

&authenticator

A block that decides whether the provided username and password

are valid.

Returns

Object

False if basic auth is not provided, otherwise the return value of the authenticator block.

@overridable :api: public

# File lib/merb-core/controller/mixins/authentication.rb, line 107
def authenticate(&authenticator)
  if @auth.provided? and @auth.basic?
    authenticator.call(*@auth.credentials)
  else
    false
  end
end
password() click to toggle source

Returns

String

The password provided in the request.

:api: public

# File lib/merb-core/controller/mixins/authentication.rb, line 158
def password
  provided? ? @auth.credentials.last : nil
end
provided?() click to toggle source

Returns

Boolean

Whether there has been any basic authentication credentials provided

:api: public

# File lib/merb-core/controller/mixins/authentication.rb, line 142
def provided?
  @auth.provided?
end
request() click to toggle source

Request basic authentication and halt the filter chain. This is for use in a before filter.

Throws

:halt with an "HTTP Basic: Access denied." message with no layout, and sets the status to Unauthorized.

:api: public

# File lib/merb-core/controller/mixins/authentication.rb, line 121
def request
  request!
  throw :halt, @controller.render("HTTP Basic: Access denied.\n", :status => Unauthorized.status, :layout => false)
end
request!() click to toggle source

Sets headers to request basic auth.

Returns

String

Returns the empty string to provide a response body.

:api: public

# File lib/merb-core/controller/mixins/authentication.rb, line 132
def request!
  @controller.status = Unauthorized.status
  @controller.headers['WWW-Authenticate'] = 'Basic realm="%s"' % @realm
  ""
end
username() click to toggle source

Returns

String

The username provided in the request.

:api: public

# File lib/merb-core/controller/mixins/authentication.rb, line 150
def username
  provided? ? @auth.credentials.first : nil
end

Protected Instance Methods

authenticate_or_request(&authenticator) click to toggle source

:api: private

# File lib/merb-core/controller/mixins/authentication.rb, line 165
def authenticate_or_request(&authenticator)
  authenticate(&authenticator) || request
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.