Pergunta

The Open Source Book Merb tem um capítulo sobre autenticação . No entanto, o testar uma seção de solicitação autenticado meros exemplos, mostra o que você pode fazer por forma de autenticação baseado. Eu tenho um serviço web que eu quero teste com HTTP autenticação básica. Como eu faria isso?

Foi útil?

Solução

Depois de postar minha pergunta, eu tentei mais algumas coisas e encontrei a minha própria resposta. Você pode fazer algo como o seguinte:

response = request('/widgets/2222', 
                   :method => "GET", 
                   "X_HTTP_AUTHORIZATION" => 'Basic ' + ["myusername:mypassword"].pack('m').delete("\r\n"))

I pode dar a volta a actualizar o livro, mas pelo menos esta informação está aqui para o Google para encontrar e, possivelmente, ajudar alguém.

Outras dicas

Aqui está um exemplo para HTTP autenticação básica de dentro de um controlador:

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

você precisa definir o merb_auth_slice em config / router.rb , se não é já feito para você:

Merb::Router.prepare do
  slice(:merb_auth_slice_password, :name_prefix => nil, :path_prefix => "")
end
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top