我认为我的一个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'
谷歌search这个错误提出了LDAP分页和相关限制的讨论。 关于OpenLDAP的这个文档限制了提到olcSizeLimit和size.pr
我能够使用此ldif将我的olcSizeLimit从500更改为-1:
dn: cn=config changetype: modify replace: olcSizeLimit olcSizeLimit: -1
不幸的是我的客户仍然看到它的分页问题。
size.pr是一个slapd.conf设置,而我的OpenLDAP使用slapd.d。 在LDAP模式中查找olcDbClientPr ,我发现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
size.pr是每个数据库(和dn /组scopable), olcLimits选项。 您可能也对全局olcSizeLimit选项感兴趣。
从slapd-config(5) :
olcSizeLimit:size [。{soft | hard | unchecked}] = […]
指定要从search操作返回的最大条目数。 默认的大小限制是500.使用无限制来指定没有限制。 第二种格式允许设置大小限制的细粒度。 额外的参数可以添加相同的值或附加值。 有关不同标志的解释,请参阅olcLimits。
olcDbClientPr与size.pr 。