2011-06-05 231 views
8

I M使用HTTP Digest連接到我的Spring應用程序,使用Spring DigestAuthenticationFilter HTTP摘要。 該應用程序是使用Tomcat 7 它正常工作與明文密碼(在數據庫中)與哈希存儲密碼

我的問題是:我想存儲散列密碼(與鹽如果可能的話),而不是明文。但是如果我理解的很好,HTTP Digest要求密碼是純文本的。

有沒有辦法在Spring Security的改變呢?

回答

8

我想存儲散列密碼 (與鹽如果可能),而不是在 明文。但是,如果我理解的很好, HTTP摘要要求以明文形式輸入密碼 。

有沒有辦法在 Spring Security的改變呢?

不,這是不可改變的,至少在撰寫本文時是這樣。 Spring Security documentation on Digest Authentication指出以下內容,其中很明顯密碼必須以明文顯示。

配置好的UserDetailsS​​ervice是必要的,因爲DigestProcessingFilter 必須有用戶的明確 文本密碼直接進入 。如果你 在您 DAO中使用編碼的密碼摘要 認證將無法工作。

+0

纔有可能延長DigestAuthenticationFilter使這可能嗎? – guigui42 2011-06-06 22:18:53

+0

我不確定這是否會奏效(因爲我之前沒有嘗試過),但這是值得嘗試的。您可能還必須擴展DigestProcessingFilterEntryPoint,以便您可以發出一個WWW-Authenticate響應標頭,其算法值不是MD5,但由瀏覽器支持。如果之前擴展類的方案不起作用,您也可以嘗試使用DelegatingFilterProxy的不同方法,但我從未見過它用於摘要式身份驗證。 – 2011-06-06 22:55:51

+0

有沒有辦法讓一個自定義的AuthenticationProcessingFilter擁有'DigestEntryPoint'作爲它的入口點,以便您可以訪問用戶名和密碼? – 2014-10-08 13:29:40