Я хочу реализовать базовую аутентификацию HTTP на моем промежуточном сервере, но только для тех, кто находится за пределами локальной сети. У меня есть приложение Rails 3.1. В application.rb у меня есть следующее:
class ApplicationController << ActionController::Base
http_basic_authenticate_with :realm => "Staging", :name => "user", :password => "password" if :need_authentication?
private
def need_authentication?
Rails.env == "staging" && request.remote_addr !~ /^192.168.0.\d{1,3}$/
end
end
Вот в чем проблема: даже когда need_authentication?
метод явно возвращает false
, приложение все еще просит меня пройти аутентификацию, как если бы оно полностью игнорировало предложение if в конец.
Итак, есть ли способ требовать аутентификацию только при определенных условиях?