【发布时间】:2014-10-21 13:55:47
【问题描述】:
我想使用 Spring LDAP 实现一个基本的用户存储库,它是对象目录映射 (ODM) 的概念。
我的用户类非常简单:
@Entry(objectClasses = { "inetOrgPerson", "organizationalPerson", "person", "shadowAccount", "top" }, base = "ou=people")
public class User {
[...]
@Id
private Name dn;
@Attribute(name = "uid")
@DnAttribute(value = "uid")
private String username;
@Attribute(name = "cn")
private String fullName;
@Attribute(name = "givenName")
private String firstName;
@Attribute(name = "sn")
private String lastName;
@Attribute(name = "o")
private String organization;
@Attribute(name = "userPassword")
private String password;
// Getters & Setters
[...]
}
以及我的存储库的基本方法:
public User findByUid(String uid) {
return ldapTemplate.findOne(query().where("uid").is(uid), User.class);
}
public void update(User user) {
ldapTemplate.update(user);
}
除了密码属性外,一切正常。例如,如果我只更改用户名,则密码也会更改。
我想知道如何处理编码密码(使用 SHA - 安全散列算法)。
我没有看到任何允许指定编码方法的注释。
我们必须手动处理吗?
【问题讨论】:
-
SHA 不是一种加密方法,它是一种安全的散列算法。
-
我的意思是密码是在 OpenLDAP 中使用这种算法加密的。
-
不,您的意思是在 OpenLDAP 中使用此算法对密码进行 散列。在任何声称具有适当安全性的系统中,密码都没有加密。您无需在代码中指定散列算法。它被配置到 OpenLDAP 中。
标签: spring ldap sha spring-ldap change-password