sexta-feira, 6 de março de 2015

OpenLDAP Windows

See the english version

Fala pessoal!

Hoje eu tive que instalar o OpenLDAP no Windows.

É simples, basta seguir estes passos. Você tem que:
- Fazer Download do OpenLDAP para windows windows: http://sourceforge.net/projects/openldapwindows/
- Extrair o zip para alguma pasta
- Executar e instalar o software
- No "Menu Iniciar do Windows" procure por "Start LDAP Server" e clique nele. (Iniciar – Programas – OpenLDAP 2.4.38 – Start LDAP Server)
- No "Menu Iniciar do Windows" procure por "OpenLDAP Command Line" e clique nele.  (Iniciar – Programas – OpenLDAP 2.4.38)
- Digite: ldapadd.exe -v -x -D "cn=Manager,dc=my-domain,dc=com" -W -f ..\etc\ldif\base.ldif
- Aperte enter. (Se não funcionar, tente digitar novamente as aspas (" ") pois o Windows pode se perder com esse caracter)
- Digite a senha que é "secret" por padrão
- Digite: ldapadd.exe -v -x -D "cn=Manager,dc=my-domain,dc=com" -W -f ..\etc\ldif\base.ldif
- Aperte enter.
- Digite a senha que é "secret" por padrão

Agora, o OpenLDAP está instalado, configurado e iniciado. Para fazer login use:
Host: localhost
Port: 389
User: cn=Manager,dc=my-domain,dc=com
Password: secret

Abraço!!
Adriano Schmidt

Sizelimit Exceeded OpenLDAP

See the English Version

Fala galera!

Hoje eu tive esse problema em um projeto Java quando eu tentei fazer uma pesquina no OpenLDAP:
2015-02-26 16:44:04,875 ERROR [br.com.localhost8080.ldap.MyClass] Sizelimit Exceeded
LDAPException: Sizelimit Exceeded (4) Sizelimit Exceeded

LDAPException: Matched DN:
at com.novell.ldap.LDAPResponse.getResultException(Unknown Source)
at com.novell.ldap.LDAPResponse.chkResultCode(Unknown Source)
at com.novell.ldap.LDAPSearchResults.next(Unknown Source)
at br.com.localhost8080.ldap.LdapSynchronizer.synchronize(LdapSynchronizer.java:84)

Isso aconteceu porque o meu OpenLDAP tinha 1500 users... e o sizelimit default no meu Java Client era 1000.

Alterando o parametro sizelimit no slapd.conf no OpenLDAP não resolveu o problema.

Para resolver eu usei a classe com.novell.ldap.LDAPSearchConstraints dessa forma:
LDAPSearchConstraints ldsc = new LDAPSearchConstraints();
ldsc.setMaxResults(0);

connection.search(searchBase, searchScope, searchFilter, new String[] {}, false, ldsc);
Setnado o MaxResults com 0 (zero) o sizelimit fica ilimitado.

Abraços!
Adriano Schmidt