Тестирование базового 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
Другие вопросы по тегам