class 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
provided?()
click to toggle source
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
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