class PactBroker::Api::Middleware::BasicAuth
Attributes
Public Class Methods
Source
# File lib/pact_broker/api/middleware/basic_auth.rb, line 12 def initialize(app, write_credentials, read_credentials, policy) @app = app @write_credentials = write_credentials @read_credentials = read_credentials @app_with_write_auth = build_app_with_write_auth @app_with_read_auth = build_app_with_read_auth @policy = policy end
Public Instance Methods
Source
# File lib/pact_broker/api/middleware/basic_auth.rb, line 21 def call(env) if policy.public_access_allowed?(env) app.call(env) elsif policy.read_access_allowed?(env) app_with_read_auth.call(env) else app_with_write_auth.call(env) end end
Protected Instance Methods
Source
# File lib/pact_broker/api/middleware/basic_auth.rb, line 37 def read_credentials_match(*credentials) is_present?(read_credentials) && credentials == read_credentials end
Source
# File lib/pact_broker/api/middleware/basic_auth.rb, line 33 def write_credentials_match(*credentials) is_present?(write_credentials) && credentials == write_credentials end
Private Instance Methods
Source
# File lib/pact_broker/api/middleware/basic_auth.rb, line 52 def build_app_with_read_auth this = self Rack::Auth::Basic.new(app, "Restricted area") do |username, password| this.write_credentials_match(username, password) || this.read_credentials_match(username, password) end end
Source
# File lib/pact_broker/api/middleware/basic_auth.rb, line 45 def build_app_with_write_auth this = self Rack::Auth::Basic.new(app, "Restricted area") do |username, password| this.write_credentials_match(username, password) end end
Source
# File lib/pact_broker/api/middleware/basic_auth.rb, line 59 def is_present?(credentials) !credentials.first.blank? && !credentials.last.blank? end