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?

È stato utile?

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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top