HTTP摘要认证与哈希存储密码

9
我正在使用HTTP Digest连接到我的Spring应用程序,使用Spring DigestAuthenticationFilter。该应用程序使用Tomcat 7。对于明文密码(在数据库中),它可以正常工作。
我的问题是:我希望存储哈希密码(如果可能,还要加盐),而不是明文密码。但是,如果我理解正确的话,HTTP Digest要求密码为明文。
在Spring Security中有没有改变这种情况的方法?
1个回答

8
我希望存储哈希密码(如果可能,带有盐),而不是明文。但是,如果我理解正确,HTTP Digest 要求密码为明文。 在 Spring Security 中是否有改变这种情况的方法?
不,至少在撰写本文时不能更改此设置。Spring Security 文档中对摘要认证的说明 指出如下内容,很明显需要使用明文密码。
“配置的 UserDetailsService 是必需的,因为 DigestProcessingFilter 必须直接访问用户的明文密码。如果您在 DAO 中使用编码密码,则 Digest 认证将无法正常工作。”

能否将DigestAuthenticationFilter扩展以实现这个功能? - guigui42
我不确定那是否会起作用(因为我之前从未尝试过),但应该值得一试。你可能还需要扩展DigestProcessingFilterEntryPoint,以便可以发出带有算法值的WWW-Authenticate响应标头,该值不是MD5,而是受浏览器支持的其他值。如果前面继承类的方案不奏效,你可以尝试使用DelegatingFilterProxy的不同方法,但我从未见过它用于摘要认证。 - Vineet Reynolds
有没有办法创建一个自定义的AuthenticationProcessingFilter,将DigestEntryPoint作为其入口点,以便您可以访问用户名和密码? - Alexander Suraphel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接