2012-07-17 54 views
3

我有一個digest auth設置就像sinatrarb網站的例子。你如何規定在Sinatra的摘要認證?

#config.ru 
require './main' 

app = Rack::Auth::Digest::MD5.new(Sinatra::Application) do |username| 
    {'foo' => 'bar'}[username] 
end 
app.realm = 'Protected Area' 
app.opaque = 'secretkey' 

run app 

我想知道如果有人知道如何或可以指向我的指導rspecing這個。 謝謝。

回答

4

Sinatra FAQ有一個使用Test :: Unit和Basic Auth的例子。我從未使用RSpec與Sinatra,但應該很容易從Test :: Unit翻譯這個例子。

即使該示例使用基本身份驗證,摘要身份驗證也可以以相同方式進行測試。唯一的區別是您需要使用Rack :: Test的digest_authorize方法。例如,常見問題解答中的最後一項測試將變爲:

def test_with_proper_credentials 
    digest_authorize 'admin', 'admin' 
    get '/protected' 
    assert_equal 200, last_response.status 
    assert_equal "You're welcome", last_response.body 
end 
+0

Oooh我沒有看到。非常感謝!哈哈我認爲這會變得更加複雜。 – blc 2012-08-03 20:40:31