База ContextSource
предназначена для указания базы всех операций на ContextSource
и обычно устанавливается на DN контроллера домена.
Вы можете использовать ODM без указания базы на @Entry
(или используя базовое DN выше в дереве), но в этом случае вы обычно будете использовать аннотацию @DnAttribute
, чтобы платформа автоматически создавала DN для вас (в основном это необходимо, когда сохраняющиеся записи обратно в LDAP).
Если предположить, что ваши пользователи находятся в следующей структуре:
dc=example,dc=com,ou=USERS
dc=example,dc=com,ou=TESTERS
Теперь, если вы укажете базу dc=example,dc=com
в ContextSource, вы можете заставить ODM обрабатывать это автоматически, как кратко описано ниже:
@Entry(objectclasses={"person"})
public class Person {
@Id
private Name dn;
@DnAttribute(name="ou", index=0)
@Transient // Indicates that this is not an attribute on the entry
private String userType;
@Attribute(name="cn")
private String name;
// More attributes here
}
Вышеупомянутое будет обрабатывать автоматическое сопоставление записей LDAP с классом Person и из него. Теперь, если вы хотите найти всех людей, выполните:
List<Person> allPersons = ldapTemplate.findAll(Person.class);
Если вы хотите найти всех тестировщиков, вы должны сделать:
List<Person> testers = ldapTemplate.find(
query().base("ou=TESTERS"),
Person.class);
person
marthursson
schedule
04.09.2014