Retornar campo do LDAP
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();
}
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
Curtidas 0
Respostas
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.
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
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
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