我有一个我们正在重写的遗留应用程序,我正在转换现有的用户表。密码是使用 sha-1 加盐加密的。特别是盐+密码。例如,如果盐为 ABC123,密码为 XYZ789,则将加密的字符串为 ABC123XYZ789。 Spring Security 默认加密字符串 XYZ789{ABC123}。如何实现我自己的密码加密/验证以绕过 Spring Security 的默认加密。
我可以发布我的安全 xml,但如果我使用加密的密码 {salt} 更新散列密码,一切正常。
谢谢你的帮助!
最佳答案
子类 ShaPasswordEncoder
并覆盖 mergePasswordAndSalt(String, Object, boolean)
方法。可以看到here, how it is originally implemented .只需修改字符串连接部分即可。
然后,像这样提供您自己的passwordEncoder
:
<beans:bean
id="passwordEncoder"
class="my.awesome.package.MyAwesomeShaPasswordEncoder"/>
关于java - 带盐的 Spring Security 3 SHA-1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10922396/