Desidero implementare l'autenticazione di base HTTP sul mio server di staging, ma solo per quelli esterni alla rete locale. Ho un'applicazione Rails 3.1. In application.rb, ho il seguente:Autenticazione di base HTTP condizionale
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
Ecco il problema: anche quando il metodo need_authentication?
esplicitamente rendimenti false
, l'applicazione ancora mi chiede di autenticare, come se fosse completamente ignorando la clausola if alla fine.
Quindi, esiste un modo per richiedere l'autenticazione solo in determinate condizioni?
'http_basic_authenticate_with' è un metodo di classe. Ho provato a inserirlo in un altro metodo, come descritto sopra, ma ciò mi dà un'eccezione 'metodo non definito '. – partydrone