1

我使用 Spring Security 来避免非用户访问我的应用程序。我必须使用 SHA 对此类用户的角色和密码进行编码。一切都很好,我正在积极使用登录表单,但我需要一个表单来创建用户。我的问题是我在密码字段中写的内容被解释为 SHA 编码密码,所以当我尝试使用新用户登录时,我不能。我该如何解决这个问题?有没有办法强制 Spring 加密我在密码字段中写入的密码?

4

1 回答 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 回答