class Workarea::BasicAuth::Middleware
Public Class Methods
new(app)
click to toggle source
# File lib/workarea/basic_auth/middleware.rb, line 7 def initialize(app) @app = app @realm = "workarea-basic-auth" @authenticator = Proc.new do |user, pass| (Workarea.config.basic_auth.user == user && Workarea.config.basic_auth.pass == pass) end end
Public Instance Methods
call(env)
click to toggle source
# File lib/workarea/basic_auth/middleware.rb, line 16 def call(env) return @app.call(env) unless Workarea::BasicAuth.enabled? auth = Middleware::Request.new(env) return @app.call(env) unless auth.required? return unauthorized unless auth.provided? return bad_request unless auth.basic? return unauthorized unless valid?(auth) env["REMOTE_USER"] = auth.username @app.call(env) end
Private Instance Methods
challenge()
click to toggle source
# File lib/workarea/basic_auth/middleware.rb, line 32 def challenge 'Basic realm="%s"' % realm end
valid?(auth)
click to toggle source
# File lib/workarea/basic_auth/middleware.rb, line 36 def valid?(auth) @authenticator.call(*auth.credentials) end