Re:Melhor forma de autenticação LDAP

12 respostas
D

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;
		}
	}

12 Respostas

D

Eu nunca precisei fazer isso. :frowning:

T

Via JNDI é possível fazer algumas coisas bem básicas e usuais (como autenticar-se em um determinado sistema), mas outras coisas mais específicas (como mudar a senha, ou listar os grupos ao qual um usuário pertence) exigem acesso direto ao LDAP.

T

São essas bibliotecas que você citou no começo (JLDAP, OpenLDAP etc.).

R

Via JNDI você consegue fazer tudo isso também. Listar grupos, trocar senha, criar ou deletar um usuário, etc.

A

oi

tente utilizar um browser para o ldap, pode te ajudar com os testes
um que eu já usei e recomendo é este aqui

abs

R

Pessoal boa tarde,

Estou com problemas também usando LDAP, peguei um projeto pronto e a função de Excluir email nao esta funcionando, soh isso.
Será que alguém pode me ajudar?

G

Brother, tentava fazer isso de diversas formas e que coisa mais simples. muito obrigado.

G

Galera,

Estive olhando em vários foruns e constatei a utilização de várias bibliotecas para autenticação LDAP. Em nenhum encontrei um comparativo entre elas.
Alguem ja utilizou JLDAP (biblioteca pra implementação OpenLDAP, de LDAP)?
O que acham da propria JNDI do java para isso?

Desde ja agradeço, Guilherme

G

Obrigado!

De fato é muito simples, tudo via JNDI.
Além da autenticação, vc tb consegue alterar a senha?

guilherme

G

e como seria esse acesso direto ao LDAP? Existe alguma API Java para isso?

G

Blz! é que ainda não sei como utilizá-las!

Obrigado pela ajuda!!

G

blz, vou tentar aqui…

abs

Criado 11 de março de 2009
Ultima resposta 12 de mar. de 2009
Respostas 12
Participantes 7