Тестирование базового HTTP-аутентифицированного запроса в Merb
В Merb Open Source Book есть глава по аутентификации. Тем не менее, пример тестирования запроса на проверку подлинности показывает только то, что вы можете сделать для проверки подлинности на основе форм. У меня есть веб-сервис, который я хочу протестировать с базовой аутентификацией HTTP. Как бы я это сделал?
2 ответа
Решение
После размещения моего вопроса я попробовал еще несколько вещей и нашел свой собственный ответ. Вы можете сделать что-то вроде следующего:
response = request('/widgets/2222',
:method => "GET",
"X_HTTP_AUTHORIZATION" => 'Basic ' + ["myusername:mypassword"].pack('m').delete("\r\n"))
Я могу найти время для обновления книги, но, по крайней мере, эта информация здесь для Google, чтобы найти и, возможно, помочь кому-то еще.
Вот пример базовой аутентификации HTTP из контроллера:
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
вам нужно определить merb_auth_slice в config/router.rb, если это еще не сделано для вас:
Merb::Router.prepare do
slice(:merb_auth_slice_password, :name_prefix => nil, :path_prefix => "")
end