java - 带盐的 Spring Security 3 SHA-1

标签 java xml spring security

我有一个我们正在重写的遗留应用程序,我正在转换现有的用户表。密码是使用 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/

相关文章:

XML Schema 一个元素可以有多种数据类型吗?

java - 如何确保JMS队列将消息保存在持久存储中而不是堆中?

c# - "Expression must evaluate to a node-set."

java - 奇怪的 FileWriter 错误

java - org.xml.sax.SAXParseException;找不到元素'beans :beans 的声明

java - 这段代码使用(Mockito 和 JUnit)是测试我的 @Service 中的 getById 方法的好方法吗?

java - 在 OneToMany 关系中保存时,JPA 不清除 Set 迭代器

java - 从 @Transaction 方法调用 Spring TransactionTemplate

java - double 到 int 的转换结果始终为 0

java - JDBI失败案例