0

Merb Open Source Book有一章是关于身份验证的。但是,测试经过身份验证的请求部分示例仅显示了您可以对基于表单的身份验证执行哪些操作。我有一个要使用 HTTP 基本身份验证测试的 Web 服务。我该怎么做?

4

2 回答 2

0

发布我的问题后,我尝试了更多的东西并找到了自己的答案。您可以执行以下操作:

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

我可能会花时间更新这本书,但至少这些信息可供 Google 查找并可能帮助其他人。

于 2009-01-21T23:06:34.110 回答
0

以下是控制器内部 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

如果还没有为您完成,您需要在config/router.rb中定义 merb_auth_slice:

Merb::Router.prepare do
  slice(:merb_auth_slice_password, :name_prefix => nil, :path_prefix => "")
end
于 2009-01-22T01:37:13.510 回答