0

任何人都可以帮助我了解如何使用 springldap 从 LDAP 中找到一些记录。

我的问题是,我创建了一个休息服务,它接受一些参数。一个是offset,另一个是limit。偏移参数转义一些记录,例如我的 ldap 服务器有 500 条记录。现在,如果我给出偏移值 1 并且 LIMIT 是 100。那么它应该从 ldap 给出前 100 条记录。如果我给偏移值 100 并且 LIMIT 是 100,那么它应该在 ldap 的前 100 条记录之后给出 100 条记录。如果我给偏移值 50 并且 LIMIT 是 10,那么它应该在 ldap 的前 50 条记录之后给出 10 条记录。

我被困在如何在 spring ldap 模板中设置偏移值。我设置了限制值,它工作正常。

我正在分享代码的和平。

public OrganisationGroups getOrganisationGroup() 
{

    SearchControls controls = new SearchControls();

    controls.setSearchScope(SearchControls.SUBTREE_SCOPE);
    controls.setCountLimit(MAXIMUM_SEARCH_GROUP_COUNT);
    AndFilter filter = new AndFilter();
    filter.and(new EqualsFilter("objectclass", "groupOfUniqueNames"));
    List<OrganisationGroup> organisationGroup = ldapTemplate.search("", filter.toString(), controls, new GroupSearchMapper());

    OrganisationGroups groups = new OrganisationGroups();
    groups.setOrganisationGroup(organisationGroup);
    groups.setCount(organisationGroup.size());
    return groups;
}

在这段代码中,我设置了 MAXIMUM_SEARCH_GROUP_COUNT 变量以从 ldap 中找出最大记录。但我无法设置参数或任何其他方式从一开始就转义一些记录。

4

1 回答 1

0

您最好的选择是使用虚拟列表视图请求控件(链接到规范),也称为 VLV。请注意,要使用 VLV,您需要在 LDAP 服务器上进行配置更改(我假设您使用的是支持VLV的 OpenDJ )。

在这个论坛上有一个带有 VLV 请求控制的 JNDI LDAP 提供程序的代码示例。

于 2016-05-01T01:48:12.150 回答