您可以在運行時有效地使用過濾器來指定要用於搜索的內容以及不依賴於某些規則或您對屬性的NULL驗證。 PLS發現其獲取在ldapTemplate使用過濾器人名示例代碼: -
public static final String BASE_DN = "dc=xxx,dc=yyy";
private LdapTemplate ldapTemplate ;
public List getPersonNames() {
String cn = "phil more";
String sn = "more";
AndFilter filter = new AndFilter();
filter.and(new EqualsFilter("objectclass", "person"));
filter.and(new EqualsFilter("sn", sn));
filter.and(new WhitespaceWildcardsFilter("cn", cn));
return ldapTemplate.search(
BASE_DN,
filter.encode(),
new AttributesMapper() {
public Object mapFromAttributes(Attributes attrs)
throws NamingException {
return attrs.get("cn").get();
}
});
}
正如名字所暗示的AndFilters加入像EqualFilter查找該檢查屬性的平等而WhitespaceWildcardsFilter執行通配符搜索中使用的所有單獨的過濾器。因此,就像我們得到cn = phil更多,它反過來使用*phil*more*
進行搜索。
謝謝Avis ... AND過濾器正是我需要的 – NimmyKrish