Тестирование базового HTTP-аутентифицированного запроса в Merb - PullRequest
0 голосов
/ 22 января 2009

Книга открытого исходного кода Merb содержит главу по аутентификации . Однако в примере , проверяющем секцию аутентифицированных запросов , показано только то, что можно сделать для аутентификации на основе форм. У меня есть веб-сервис, который я хочу протестировать с базовой аутентификацией HTTP. Как бы я это сделал?

Ответы [ 2 ]

0 голосов
/ 22 января 2009

Вот пример базовой аутентификации 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
0 голосов
/ 22 января 2009

После публикации моего вопроса я попробовал еще несколько вещей и нашел свой собственный ответ. Вы можете сделать что-то вроде следующего:

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

Я могу найти время для обновления книги, но, по крайней мере, эта информация здесь, чтобы Google мог найти ее и, возможно, помочь кому-то еще.

...