Test della richiesta autenticata HTTP di base in Merb
Domanda
Il libro open source Merb ha un capitolo sull'autenticazione . Tuttavia, l'esempio testare una sezione di richiesta autenticata mostra solo cosa puoi fare per autenticazione basata su moduli. Ho un servizio web che voglio testare con l'autenticazione di base HTTP. Come lo farei?
Soluzione
Dopo aver pubblicato la mia domanda, ho provato alcune altre cose e ho trovato la mia risposta. Puoi fare qualcosa del tipo:
response = request('/widgets/2222',
:method => "GET",
"X_HTTP_AUTHORIZATION" => 'Basic ' + ["myusername:mypassword"].pack('m').delete("\r\n"))
Potrei andare in giro ad aggiornare il libro, ma almeno questa informazione è qui per Google per trovare e forse aiutare qualcun altro.
Altri suggerimenti
Ecco un esempio per l'autenticazione di base HTTP dall'interno di un controller:
class MyMerbApp < Application
before :authenticate, :only=>[:admin]
def index
render
end
def admin
render
end
protected
def authenticate
basic_authentication("Protected Area") do |username, password|
username == "name" && password == "secret"
end
end
end
dovrai definire merb_auth_slice in config / router.rb se non è già stato fatto per te:
Merb::Router.prepare do
slice(:merb_auth_slice_password, :name_prefix => nil, :path_prefix => "")
end