Module: ActionController::HttpAuthentication::Basic::ControllerMethods

Extended by:
ActiveSupport::Concern
Defined in:
lib/action_controller/metal/http_authentication.rb

Defined Under Namespace

Modules: ClassMethods

Instance Method Summary collapse

Instance Method Details

#authenticate_or_request_with_http_basic(realm = nil, message = nil, &login_procedure) ⇒ Object



86
87
88
# File 'lib/action_controller/metal/http_authentication.rb', line 86

def authenticate_or_request_with_http_basic(realm = nil, message = nil, &)
  authenticate_with_http_basic(&) || request_http_basic_authentication(realm || "Application", message)
end

#authenticate_with_http_basic(&login_procedure) ⇒ Object



90
91
92
# File 'lib/action_controller/metal/http_authentication.rb', line 90

def authenticate_with_http_basic(&)
  HttpAuthentication::Basic.authenticate(request, &)
end

#http_basic_authenticate_or_request_with(name:, password:, realm: nil, message: nil) ⇒ Object



77
78
79
80
81
82
83
84
# File 'lib/action_controller/metal/http_authentication.rb', line 77

def http_basic_authenticate_or_request_with(name:, password:, realm: nil, message: nil)
  authenticate_or_request_with_http_basic(realm, message) do |given_name, given_password|
    # This comparison uses & so that it doesn't short circuit and
    # uses `secure_compare` so that length information isn't leaked.
    ActiveSupport::SecurityUtils.secure_compare(given_name, name) &
      ActiveSupport::SecurityUtils.secure_compare(given_password, password)
  end
end

#request_http_basic_authentication(realm = "Application", message = nil) ⇒ Object



94
95
96
# File 'lib/action_controller/metal/http_authentication.rb', line 94

def request_http_basic_authentication(realm = "Application", message = nil)
  HttpAuthentication::Basic.authentication_request(self, realm, message)
end