我正在使用 Apache Directory API 来查询 OpenLDAP 服务器。我认为这段代码应该返回排序的结果,sn
但它们是以随机顺序返回的。
SearchRequest req = new SearchRequestImpl();
req.setScope(SearchScope.ONELEVEL);
req.addAttributes("*");
req.setTimeLimit(0);
req.setBase(searchDn);
req.setFilter("(objectclass=posixAccount)");
SortRequest sortRequest = new SortRequestControlImpl();
sortRequest.addSortKey(new SortKey("sn"));
req.addControl(sortRequest);
try (EntryCursor cursor = new EntryCursorImpl(connection.search(req))) {
for (Entry entry : cursor) {
System.out.println("sn: " + entry.get("sn").getString());
}
}
此代码从我的测试 LDAP 服务器中的数据的输出是:
sn: Trainee
sn: Admin
sn: User
sn: Supervisor
sn: Supervisor
我基于此集成测试的代码https://github.com/apache/directory-server/blob/master/server-integ/src/test/java/org/apache/directory/server/operations/search/SortedSearchIT。 java,我看不出我做错了什么。
任何人都可以提供任何建议吗?谢谢。