Spring LDAP无法获取外部记录的记录

时间:2019-04-08 11:57:59

标签: spring-security ldap

我正在探索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中存在的用户?

1 个答案:

答案 0 :(得分:1)

搜索的基础是员工在目录树中的存储位置: OU=Employees,OU=User Accounts,dc=ad,dc=mycompany,dc=com

如果您从OU=User Accounts,dc=ad,dc=mycompany,dc=com中进行搜索,则应该能够找到外部用户,但这实际上取决于公司中LDAP目录的结构。