I want to implement basic HTTP authentication on my intermediate server, but only for those who are outside the local network. I have a Rails 3.1 application. In application.rb, I have the following:
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
Here rub: even when the need_authentication? method need_authentication? explicitly returns false , the application still asks me for authentication, as if it completely ignores the if clause at the end.
So, is there a way to require authentication under certain conditions?
source share