2010-03-01 160 views
2

我想在tomcat-users.xml中使用哈希的測試用例。 (我計劃實施領域的一個類的子類與審計,日誌記錄等,做真正的驗證)我跑的命令哈希的tomcat密碼

$TOMCAT_HOME/bin/digest.sh -a sha secret 

,並得到了結果「祕密:e5e9fa1ba31ecd1ae84f75caaa474f3a663f05f4」。我把這個貼到了

<user password="e5e9fa1ba31ecd1ae84f75caaa474f3a663f05f4" roles="test" username="tester"/> 

line。我在我的web.xml中添加了適當的魔術字以對servlet使用DIGEST身份驗證(role = test),但是當我嘗試登錄時,出現401錯誤。

我「觀察」了wireshark的交易,看起來瀏覽器正在發送所有正確的回覆。

我正在做這個對嗎?在我看來,摘要認證將發回MD5(「username:realm:password」),所以tomcat無法將存儲在tomcat-users.xml文件中的值與瀏覽器發送的值進行比較,因爲它需要從tomcat-users.xml或「username:realm:password」中取消密碼值。

我應該存儲「username:realm:password」的散列嗎?

回答

7

男孩,這是一個DUE(愚蠢的用戶錯誤)!

我應該更仔細地閱讀tomcat的文檔:

如果使用帶摘要認證,用於生成摘要不同的是明文密碼消化。在上面的示例中,{cleartext-password}必須替換爲{username}:{realm}:{cleartext-password}。例如,在開發環境中,這可能採用testUser:localhost:8080:testPassword的形式。

正是我自己的問題的最後一部分:-)。