Harbor Documentation

Harbor::Auth::Basic

Simple mechanism for implementing HTTP basic authentication.

  get("/secret-page") do |request, response|
    Harbor::Auth::Basic.authenticate(request, response) { |username, password| username == "wieck" }

    response.puts "Secret Stuff"
  end

Constants

  • AUTHORIZATION_KEYS

Attributes

  • realm [RW] (Not documented)

Public Class Methods

authenticate(request, response)

Checks the credentials provided in the request against the provided block. If the block returns false, the request aborted.

      # File lib/harbor/auth/basic.rb, line 22
22:       def self.authenticate(request, response) #:yields: username, password
23:         auth = new(request)
24: 
25:         unless auth.provided? && yield(auth.credentials)
26:           response.headers["WWW-Authenticate"] = 'Basic realm="%s"' % auth.realm
27:           response.unauthorized!
28:         end
29:       end

new(request)

      # File lib/harbor/auth/basic.rb, line 31
31:       def initialize(request)
32:         @request = request
33:       end

Public Instance Methods

credentials()

      # File lib/harbor/auth/basic.rb, line 39
39:       def credentials
40:         @request.env[authorization_key].split(' ', 2).last.unpack("m*").first.split(/:/, 2)
41:       end

provided?()

      # File lib/harbor/auth/basic.rb, line 35
35:       def provided?
36:         !!authorization_key
37:       end

Private Instance Methods

authorization_key()

      # File lib/harbor/auth/basic.rb, line 45
45:       def authorization_key
46:         @authorization_key ||= AUTHORIZATION_KEYS.detect { |key| @request.env.has_key?(key) }
47:       end