:sad: classe de autenticação de usuário no AD…
bom dia se alguem poder me ajudar estou precisando de uma classe onde autentico o usuário no AD da nossa rede… tenho alguma coisa pronta mas não estou conseguindo implementar para autenticar a senha do usuario… quando entro so com o usuário blz mas quando coloco a senha ai não vai porque preciso criptografar a senha para que ela possa ser comparada no servidor AD.
package Ldap;
import java.util.Hashtable;
import javax.naming.Context;
import javax.naming.NamingException;
import javax.naming.ldap.InitialLdapContext;
import javax.naming.ldap.LdapContext;
public class ldap_login {
private LdapContext ctx;
private final String URL_LDAP = “ldap://servidor:389”;
/**
* Efetua o login do usuário
* Se login inválido, lança uma exceção do tipo AuthenticationException
*/
public boolean login(String dn, String password) throws NamingException {
Hashtable env = new Hashtable(11);
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, URL_LDAP);
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, dn);
env.put(Context.SECURITY_CREDENTIALS, password);
// Tenta criar o contexto com os dados de login
try {
ctx = new InitialLdapContext(env,null);
return true;
} catch (javax.naming.AuthenticationException e) {
// Login inválido
return false;
}
}
public static void main(String[] args) {
ldap_login l = new ldap_login();
try {
if (l.login(“usuario”,“senha”)) {
System.out.println(“Login válido”);
} else {
System.out.println(“Login inválido”);
}
} catch (NamingException n) {
n.printStackTrace();
}
}
}