我使用Spring Security来避免非用户访问我的应用。我必须使用SHA对这类用户的角色和密码进行编码。一切都很好,我正在积极使用登录表单,但我需要一个表单来创建用户。我的问题是,我在密码字段中写的内容被解释为SHA编码密码,因此当我尝试使用新用户登录时,我不能。我怎么解决这个问题?有没有办法强制Spring加密我在密码字段中写的密码?
答案 0 :(得分:3)
应该配置Spring安全性的身份验证管理器,以便它事先使用SHA对从登录表单接收的纯文本密码进行编码。
在Spring Security的文档的this chapter中,在“添加密码编码器”一节中对此进行了解释。它基本上是添加这一行配置:
<authentication-provider>
<password-encoder hash="sha"/>
...
</authentication-provider>
在存储新用户之前,您应该“自己”编码密码,Spring安全无法处理它。
在您的情况下,您可以使用ShaPasswordEncoder.encodePassword(..)
方法。
本主题已经过评估 Adding new users in Spring Security
在提问作者的第一条评论之后修改添加了详细信息