如何在 OpenLDAP 中设置 size.pr?

如何在 OpenLDAP 中设置 size.pr?

我认为我的一个 LDAP 客户端在 OpenLDAP 中达到了分页限制。客户端看到的具体错误是以下 Java 内容:

REASON: Caught exception running LDAP sync. 
[LDAP: error code 2 - paged results cookie is invalid]; 
nested exception is javax.naming.CommunicationException: 
[LDAP: error code 2 - paged results cookie is invalid]; 
remaining name 'dc=example,dc=com'

谷歌搜索该错误引发了对 LDAP 分页和相关限制的讨论。此文档OpenLDAP 限制提到olcSizeLimitsize.pr

我可以使用此 ldif 将 olcSizeLimit 从 500 更改为 -1:

dn: cn=config
changetype: modify
replace: olcSizeLimit
olcSizeLimit: -1

不幸的是,我的客户端仍然看到其分页问题。

size.pr是 slapd.conf 设置,而我的 OpenLDAP 使用的是 slapd.d。在 LDAP 模式中查找后,我发现olcDbClientPr它被描述为'PagedResults handling'。此外,以下是它在OpenLDAP 源代码

{ "client-pr", "accept-unsolicited|disable|<size>", 2, 2, 0,
    ARG_MAGIC|LDAP_BACK_CFG_CLIENT_PR,
    meta_back_cf_gen, "( OLcfgDbAt:3.111 "
        "NAME 'olcDbClientPr' "
        "DESC 'PagedResults handling' "
        "SYNTAX OMsDirectoryString "
        "SINGLE-VALUE )",
    NULL, NULL },

假设 olcDbClientPr 与 size.pr 相同,我该如何设置它?

我尝试过这个:

dn: cn=config
changetype: modify
replace: olcDbClientPr
olcDbClientPr: -1

它抛出这个错误:

modifying entry "cn=config"
ldap_modify: Object class violation (65)
    additional info: attribute 'olcDbClientPr' not allowed

cn=config如果相关的话,以下是我的目录的内容:

# ls /etc/openldap/slapd.d/cn=config/
cn=module{0}.ldif  olcDatabase={0}config.ldif     olcDatabase={1}hdb.ldif
cn=schema          olcDatabase={-1}frontend.ldif  olcDatabase={1}monitor.ldif
cn=schema.ldif     olcDatabase={1}hdb

答案1

size.pr是针对每个数据库(和 dn/group 范围)的olcLimits选项。您可能还对全局选项感兴趣olcSizeLimit

slapd-config(5)

olcSizeLimit:大小[.{soft|hard|unchecked}]= [...]
指定搜索操作返回的最大条目数。默认大小限制为 500。使用 unlimited 指定无限制。第二种格式允许对大小限制进行细粒度设置。可以在相同值或附加值中添加额外的参数。有关不同标志的说明,请参阅 olcLimits。


olcDbClientPr不是和 一样size.pr

相关内容