Bom dia,
Pessoal vejam se podem me ajudar,
Estou querendo fazer um pequeno programa em java onde o usuario pode alterar no AD Server 2008 diretamente, seu endereço, telefone e outros dados mais simples, e tambem sua senha.
Mas não consigo fazer que o usuario altere sua senha.Outros dados ele altera.
Já olhei vários forum e topicos, mas sem suscesso, como estes:
http://alextch.members.winisp.net/ResetADPasswordFromJava/SetADPasswordFromJava.htm
Neste trecho quero usar a credencial do próprio ususario:
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL,"CN=kamplenk,OU=Estagiarios,OU=Usuarios,DC=Server,DC=br"); //aqui quero usar autenticação do proprio usuario
env.put(Context.SECURITY_CREDENTIALS, "Pepe12"); //senha do usuario que quer mudar senha
env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "ldap://server.br:389"); // 636 é a porta do ldaps
env.put(Context.SECURITY_PROTOCOL, "ssl");
//conecta....
//mudar senha
String oldQuotedPassword = "\"" + senhaAntiga + "\"";
byte[] oldUnicodePassword = oldQuotedPassword.getBytes("UTF-16LE");
String newQuotedPassword = "\"" + senhaNova + "\"";
byte[] newUnicodePassword = newQuotedPassword.getBytes("UTF-16LE");
ModificationItem[] mods = new ModificationItem[2];
mods[1] = new ModificationItem(DirContext.REMOVE_ATTRIBUTE,new BasicAttribute("unicodePwd", oldUnicodePassword));
mods[0] = new ModificationItem(DirContext.ADD_ATTRIBUTE,new BasicAttribute("unicodePwd", newUnicodePassword));
// Troca a senha
DirContext ctx = new InitialDirContext(env);
ctx.modifyAttributes("CN=kamplenk,OU=Estagiarios,OU=Usuarios,DC=Server,DC=br", mods);
ctx.modifyAttributes(entryDN, mods);
Alguém já passou por isso?
Podem indicar um passo a passo para troca de senha do usuário?
Podem me passar algum código para ver se consigo isso?
Obrigado.