Testando solicitação HTTP básica autenticado no Merb
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?
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