Class | Merb::AuthenticationMixin::BasicAuthentication |
In: |
merb-core/lib/merb-core/controller/mixins/authentication.rb
|
Parent: | Object |
:api: private
# File merb-core/lib/merb-core/controller/mixins/authentication.rb, line 88 88: def initialize(controller, realm = "Application", &authenticator) 89: @controller = controller 90: @realm = realm 91: @auth = Rack::Auth::Basic::Request.new(@controller.request.env) 92: authenticate_or_request(&authenticator) if authenticator 93: end
Determines whether or not the user is authenticated using the criteria in the provided authenticator block.
&authenticator: | A block that decides whether the provided username and password |
are valid.
Object: | False if basic auth is not provided, otherwise the return value of the authenticator block. |
@overridable :api: public
# File merb-core/lib/merb-core/controller/mixins/authentication.rb, line 107 107: def authenticate(&authenticator) 108: if @auth.provided? and @auth.basic? 109: authenticator.call(*@auth.credentials) 110: else 111: false 112: end 113: end
Boolean: | Whether there has been any basic authentication credentials provided |
:api: public
# File merb-core/lib/merb-core/controller/mixins/authentication.rb, line 142 142: def provided? 143: @auth.provided? 144: end
Request basic authentication and halt the filter chain. This is for use in a before filter.
:halt with an "HTTP Basic: Access denied." message with no layout, and sets the status to Unauthorized.
:api: public
# File merb-core/lib/merb-core/controller/mixins/authentication.rb, line 121 121: def request 122: request! 123: throw :halt, @controller.render("HTTP Basic: Access denied.\n", :status => Unauthorized.status, :layout => false) 124: end
Sets headers to request basic auth.
String: | Returns the empty string to provide a response body. |
:api: public
# File merb-core/lib/merb-core/controller/mixins/authentication.rb, line 132 132: def request! 133: @controller.status = Unauthorized.status 134: @controller.headers['WWW-Authenticate'] = 'Basic realm="%s"' % @realm 135: "" 136: end