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



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

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



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

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

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



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

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



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

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