Я хочу реализовать базовый пользовательский репозиторий с использованием 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 — алгоритм безопасного хеширования).
Я не вижу никаких аннотаций, позволяющих указать метод кодирования.
Должны ли мы иметь дело с этим вручную?