![](/img/trans.png)
[英]How to perform Binary Search Operation of a text file in memory using java?
[英]How to perform search operation in ldap using spring
我想从ldap搜索特定的用户详细信息。 所以我写下了检索用户详细信息的代码,但它返回了用户对象列表。 基本上我只想要人物obejct而不是人物对象列表。 使用ldap模板进行retreiving。 如何修改此代码以便返回person对象?
public void searchByFirstName(String loginId) {
AndFilter filter = new AndFilter();
filter.and(new EqualsFilter("objectclass", "Person"));
filter.and(new EqualsFilter("cn", loginId));
List list = ldapTemplate.search("",
filter.encode(),
new AttributesMapper() {
public Object mapFromAttributes(Attributes attrs) throws NamingException {
return attrs.get("sn").get();
}
});
}
您正在调用的方法, ldapTemplate.search()始终返回匹配对象的列表。 这是因为它在LDAP服务器上找到符合条件的所有对象。 如果您不确定是否存在与您的loginId
匹配的用户,那么您已经使用了正确的方法。 只需检查列表的长度并从返回的列表中检索第一个项目。
要从LDAP获取单个项目,您需要知道LDAP服务器中用户的可分辨名称 (DN)。 DN是LDAP中对象的唯一标识符,如果您要专门查找单个对象,则需要知道这一点。 根据您的LDAP配置,这可能类似于cn=<loginId>,ou=users,dc=yourorg,dc=com
。
如果可以从loginId
构造DN,则可以使用ldapTemplate.lookup(String,AttributesMapper)方法查找单个对象。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.