我有一个我们正在重写的遗留应用程序,我正在转换现有的用户表。密码是使用带有盐的 sha-1 加密的。特别是盐+密码。例如,如果盐是 ABC123,密码是 XYZ789,那么要加密的字符串是 ABC123XYZ789。Spring Security 默认加密字符串 XYZ789{ABC123}。如何实现我自己的密码加密/验证以绕过 Spring Security 的默认加密。
我可以发布我的安全 xml,但如果我使用加密的密码 {salt} 更新散列密码,一切正常。
谢谢你的帮助!
子类ShaPasswordEncoder
化并覆盖该mergePasswordAndSalt(String, Object, boolean)
方法。你可以在这里看到它最初是如何实现的。只需修改字符串连接部分,就完成了。
然后,像这样提供你自己的passwordEncoder
:
<beans:bean
id="passwordEncoder"
class="my.awesome.package.MyAwesomeShaPasswordEncoder"/>