Como configuro size.pr no OpenLDAP?

3

Acho que um dos meus clientes LDAP está atingindo um limite de paginação no OpenLDAP. O erro específico que o cliente vê é a seguinte coisa de 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'

Pesquisando por esse erro, surgiu uma discussão sobre paginação LDAP e limites relevantes. Este documento sobre limites do OpenLDAP menciona olcSizeLimit e size.pr .

Consegui alterar meu olcSizeLimit de 500 para -1 usando este ldif:

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

Infelizmente, meu cliente ainda está vendo seu problema de paginação.

size.pr é uma configuração do slapd.conf, enquanto o meu OpenLDAP usa o slapd.d. Depois de percorrer o esquema do LDAP, encontrei o olcDbClientPr , que é descrito como 'PagedResults handling' . Além disso, veja como está descrito no código-fonte do 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 },

No pressuposto de que olcDbClientPr é a mesma coisa que size.pr, como configuro?

Eu tentei isso:

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

Isso gera esse erro:

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

Caso seja relevante, aqui está o conteúdo do meu diretório 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
    
por Leons 23.11.2016 / 03:46

1 resposta

2

size.pr é uma, por banco de dados (e dn / group scopable), olcLimits option. Você também pode estar interessado na opção global olcSizeLimit .

De slapd-config(5) :

olcSizeLimit: size[.{soft|hard|unchecked}]= [...]
Specify the maximum number of entries to return from a search operation. The default size limit is 500. Use unlimited to specify no limits. The second format allows a fine grain setting of the size limits. Extra args can be added in the same value or as additional values. See olcLimits for an explanation of the different flags.

olcDbClientPr é não igual a size.pr .

    
por 24.11.2016 / 02:00

Tags