我有一个用 spring-ldap 构建的 JAVA 应用程序,它可以在 openldap 服务器中修改用户的用户密码。我想使用 md5 存储或任何加密技术,但是当我的应用程序修改 userPassword 属性时,base64 哈希似乎被转义了。当我尝试使用新密码对用户进行身份验证时,它会导致“凭据无效”...
例如,当我使用这段代码时:
context.setAttribute(new BasicAttribute("userPassword", "{md5}DMF1ucDxtqgxw5niaXcmYQ=="));
template.modifyAttributes(dn, context.getModificationItems());
然后使用我得到的 Apache Directory Studio 查看 userPassword 属性
{md5}DMF1ucDxtqgxw5niaXcmYQ\=\=
“验证”密码功能成功但未认证。当我使用 Apache Directory Studio 修改散列并删除不必要的“\”字符时,身份验证成功。
是否可以防止 spring-ldap 转义散列密码?这个问题有什么已知的解决方案吗?
谢谢。
最佳答案
如果 LDAP 服务器配置正确,它应该会为您进行哈希处理。您当然应该通过 SSL 发送明文密码。
关于java - LDAP JAVA 和用户密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23738561/