3

我有一个我们正在重写的遗留应用程序,我正在转换现有的用户表。密码是使用带有盐的 sha-1 加密的。特别是盐+密码。例如,如果盐是 ABC123,密码是 XYZ789,那么要加密的字符串是 ABC123XYZ789。Spring Security 默认加密字符串 XYZ789{ABC123}。如何实现我自己的密码加密/验证以绕过 Spring Security 的默认加密。

我可以发布我的安全 xml,但如果我使用加密的密码 {salt} 更新散列密码,一切正常。

谢谢你的帮助!

4

1 回答 1

6

子类ShaPasswordEncoder化并覆盖该mergePasswordAndSalt(String, Object, boolean)方法。你可以在这里看到它最初是如何实现的。只需修改字符串连接部分,就完成了。

然后,像这样提供你自己的passwordEncoder

<beans:bean 
    id="passwordEncoder" 
    class="my.awesome.package.MyAwesomeShaPasswordEncoder"/>
于 2012-06-06T21:40:02.923 回答