我正在探索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中存在的用户?
答案 0 :(得分:1)
搜索的基础是员工在目录树中的存储位置:
OU=Employees,OU=User Accounts,dc=ad,dc=mycompany,dc=com
。
如果您从OU=User Accounts,dc=ad,dc=mycompany,dc=com
中进行搜索,则应该能够找到外部用户,但这实际上取决于公司中LDAP目录的结构。