Estou desenvolvendo uma aplicação java com autenticação no Active Directory e tenho que validar o usuário e a senha…o usuário
eu já consegui validar…agora a senha eu gostaria de saber se tem como eu comparar a senha que o usuário tá passando com
a do AD…por que não posso informa-la direto primeiro eu faço uma busca pra verificar se o login é valido e me voltar o caminho
da arvore desse usuário…Uma solução que encontrei foi fazer uma nova autenticação mas gostaria de saber se essa solução
é a mais adequada…
O login anonimo no AD é seguro ou é melhor usuar um usuário de serviço ?
importjava.util.Hashtable;importjavax.naming.AuthenticationException;importjavax.naming.Context;importjavax.naming.NamingException;importjavax.naming.directory.Attribute;importjavax.naming.directory.Attributes;importjavax.naming.directory.DirContext;importjavax.naming.directory.InitialDirContext;publicclassLogin{publicstaticvoidmain(Stringargs[]){StringuserName="cn=xpto,ou=usuarios,ou=SP,ou=Teste,dc=teste,dc=com,dc=br";StringnewPassword="password";HashtableauthEnv=newHashtable(11);authEnv.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");authEnv.put(Context.PROVIDER_URL,"ldap://AD.com.br:389");authEnv.put(Context.SECURITY_AUTHENTICATION,"simple");authEnv.put(Context.SECURITY_PRINCIPAL,userName);authEnv.put(Context.SECURITY_CREDENTIALS,newPassword);try{DirContextauthContext=newInitialDirContext(authEnv);System.out.println("Autenticado!");}catch(AuthenticationExceptionauthEx){System.out.println("Erro na autenticação! ");authEx.printStackTrace();}catch(NamingExceptionnamEx){System.out.println("Problemas na conexão! ");//namEx.getCause().printStackTrace();}}}