Olha a forma que autentico o usuário na rede. É só passar o usuário, senha e o domínio no qual o usuário quer se autenticar, que o método retorna true caso consiga autenticar, caso contrário, levanta alguma exceção.
@SuppressWarnings("unchecked")
public boolean login(String pUsuario, String pSenha, String pDominio) throws Exception {
String lUrl = "LDAP://" + HOST + ":" + PORTA;
String lDn = pUsuario + "@" + pDominio;
Hashtable lMapAutenticacao = new Hashtable();
lMapAutenticacao.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
lMapAutenticacao.put(Context.SECURITY_AUTHENTICATION, "simple");
lMapAutenticacao.put(Context.PROVIDER_URL, lUrl);
lMapAutenticacao.put(Context.SECURITY_PRINCIPAL, lDn);
lMapAutenticacao.put(Context.SECURITY_CREDENTIALS, pSenha);
try {
@SuppressWarnings("unused")
DirContext lAutenticacaoContexto = new InitialDirContext(lMapAutenticacao);
return true;
}
catch (Exception lExcecao) {
if (lExcecao instanceof AuthenticationException) {
//Lance a exceção para Usuário e/ou Senha Incorretos
}
if (lExcecao instanceof NamingException) {
//Lance a exceção para problema de autenticação na rede
}
throw lExcecao;
}
}
