我使用 Spring Security 来避免非用户访问我的应用程序。我必须使用 SHA 对此类用户的角色和密码进行编码。一切都很好,我正在积极使用登录表单,但我需要一个表单来创建用户。我的问题是我在密码字段中写的内容被解释为 SHA 编码密码,所以当我尝试使用新用户登录时,我不能。我该如何解决这个问题?有没有办法强制 Spring 加密我在密码字段中写入的密码?
问问题
3255 次
1 回答
3
在用户认证时
应该配置 Spring security 的身份验证管理器,以便它预先使用 SHA 对从登录表单接收到的纯文本密码进行编码。
这在 Spring Security 文档的这一章中的“添加密码编码器”段落中进行了解释。它基本上是添加这行配置:
<authentication-provider>
<password-encoder hash="sha"/>
...
</authentication-provider>
在用户创建时
在存储新用户之前,您应该“自己”编码密码,Spring security 不会处理它。
在您的情况下,您可以使用该ShaPasswordEncoder.encodePassword(..)
方法。
此主题已在 Spring Security中添加新用户中进行了评估
在问题作者的第一条评论后编辑添加的详细信息
于 2013-09-08T12:13:43.910 回答