Retornar campo do LDAP

Java

08/11/2013

Fala galera,
Preciso retornar um campo do ldap através do login e senha do usuário mas não tenho nem ideia como se faz isso, navegando pela net consegui um exemplo de como faz para conectar no ldap, mas o que preciso ainda não consegui, se alguém puder colocar algum exemplo de como faz isso ficarei grato, segue o código que estou utilizando.

Hashtable authEnv = new Hashtable();
authEnv.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
authEnv.put(Context.PROVIDER_URL, "ldap://...");
authEnv.put(Context.SECURITY_AUTHENTICATION, "none");
authEnv.put(Context.SECURITY_PRINCIPAL,usuario);
authEnv.put(Context.SECURITY_CREDENTIALS, senha);


try
{

DirContext dctx = new InitialDirContext(authEnv);
System.out.println("Autenticado!");

dctx.close();
}
catch (AuthenticationException authEx)
{
System.out.println("Erro na autenticação! ");
authEx.getCause().printStackTrace();
}
catch (NamingException namEx)
{
System.out.println("Problemas na conexão! ");
namEx.getCause().printStackTrace();
}
Anderson Bermar

Anderson Bermar

Curtidas 0

Respostas

Roselito Silva

Roselito Silva

08/11/2013

Sugiro que você use o Spring Security. Tenho um exemplo aqui:

http://rfavero.blogspot.com.br/p/blog-page_30.html

Depois de autenticado e autorizado, é possível obter qualquer campo do usuário principal via código java, mas é preciso fazer o mecanismo de autenticação/autorização funcionar primeiro.
GOSTEI 0
Anderson Bermar

Anderson Bermar

08/11/2013

Muito obrigado pela dica Roselito, o problema aqui é que o sistema é antigo, ainda está utilizando jsp e servlet, é possível utilizar o spring e validar no ldap utilizando uma servlet?
GOSTEI 0
Roselito Silva

Roselito Silva

08/11/2013

Você pode usar o Spring normalmente com suas páginas jsp. O processo de autenticação ocorre antes mesmo do construtor do managed bean. E você pode usar as variáveis do próprio Spring para acessar o nome do usuário, etc..
GOSTEI 0
POSTAR