2011-05-16 51 views

回答

3

這是指的方式HTTP認證工作:

當訪問受保護的URL(首次,與包含在請求沒有憑據),服務器將發回了的狀態碼的響應401 UnauthorizedWWW-Authenticate標題設置爲類似Basic realm="My Realm"。這表明對於給定的URL需要基本身份驗證,並且該領域被命名爲「My Realm」。這是一個挑戰 - 服務器通知用戶代理它嘗試訪問的URL需要認證,並且應該發回用戶憑證。用戶代理通常會提示用戶輸入憑據,然後重試請求,這次將Authorization標頭設置爲Basic rXflcjMwYXxz,其中第二部分是Base64編碼的用戶名和密碼對。

如果您已鏈接到HttpUnit方法,您會看到它需要領域,用戶名和密碼。我設想當一個URL被訪問時,如果它從服務器獲得401(挑戰),它會比較你傳遞它的領域和響應中的領域;如果匹配,則會嘗試使用提供的用戶名和密碼進行身份驗證。

參考文獻:

2

當服務器401錯誤響應時,HttpUnit的拋出AuthorizationRequiredException。我們可以使用異常的getParameter(「realm」)來獲取領域,並使用這個領域名稱再次發送請求。

+0

我有點困惑 - 這似乎不能回答你自己的問題*在這種情況下,挑戰意味着什麼? HttpUnit如何識別挑戰?*。這似乎是類似這樣的答案*如何使用HTTPUnit獲取域名?*我認爲我的帖子回答了您的原始問題。 – 2011-05-18 22:27:45

+0

當然,你的帖子回答了問題,我已經提出了問題。猜猜,我想說的是,你可以使用這種方法來識別來自401響應的挑戰並獲得所需的信息。 – 2011-05-19 23:02:18