Я изучаю весеннюю безопасность с помощью LDAP. У меня есть такой код:
String LDAP_BASE = "OU=Employees,OU=User Accounts,dc=ad,dc=mycompany,dc=com"
ldapTemplate.search(LDAP_BASE, filter.encode(),searchControls, this::myMethod,
pagedResultsDirContextProcessor);
this::myMethod — это функция сопоставления, и объект, который она возвращает, выглядит следующим образом:
@Entry(base = "OU=Employees,OU=User Accounts,dc=ad,dc=mycompany,dc=com",
objectClasses = {"person", "user", "top"})
public class User {
@Id
@JsonIgnore
private Name id;
.......}
Я столкнулся с проблемой с этой договоренностью. Если пользователь является внутренним для компании, этот код правильно возвращает пользователя. Но если пользователь является внешним, этот код не возвращает никакого результата, даже если запись о пользователе есть в каталоге LDAP.
Как я могу получить пользователей, которые не относятся к компании, но находятся в LDAP?
База вашего поиска — это место хранения сотрудников в дереве каталогов:
OU=Employees,OU=User Accounts,dc=ad,dc=mycompany,dc=com
.
Если вы ищете в OU=User Accounts,dc=ad,dc=mycompany,dc=com
, вы сможете найти внешних пользователей, но это действительно зависит от структуры каталога LDAP в вашей компании.