LDAP搜索涉及许多参数,例如:
基本LDAP路径 - 搜索开始时LDAP树中的哪个位置。
搜索范围 - 搜索应该在LDAP树中有多深。
要返回的属性
搜索过滤器 - 在范围内选择元素时使用的标准。
Spring LDAP提供了LdapQueryBuilder
一个流畅的API来构建LDAP查询。
假设我们想要从基本DN开始执行搜索dc=261consulting,dc=com
,将返回的属性限制为“cn”和“sn”,并使用过滤器(&(objectclass=person)(sn=?))
,我们希望将?
其替换为参数的值lastName
。
除了简化构建复杂的搜索参数之外,该类
LdapQueryBuilder
及其相关类还提供适当的转义,以避免搜索过滤器中的任何不安全字符。这可以防止“ldap注入”,其中用户可能使用这些字符将不需要的操作注入到LDAP操作中。
有许多重载的方法
LdapTemplate
用于执行LDAP搜索。这是为了适应尽可能多的不同用例和编程风格偏好。对于绝大多数用例来说,采用LdapQuery
输入的用例将是推荐使用的方法。
这
AttributesMapper
只是处理搜索和查找数据时可用的回调接口之一。有关替代方法,请参阅使用DirContextAdapter简化属性访问和操作。