Тестирование базового HTTP-аутентифицированного запроса в Merb

StackOverflow https://stackoverflow.com/questions/467365

  •  19-08-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение

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

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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top