Ändern Sie AD Passwort mit Java

Ich habe eine gute Verbindung zu AD. Ich kann mich authentifizieren und überprüfen Sie Fehlermeldungen von fehlgeschlagenen auths.

Das Problem, das ich habe, kommt von dem Versuch, das Kennwort zu ändern. Ich habe eine LDAPContext gegründet, an dieser Stelle (ja, es ist eine SSL-Verbindung). Das Problem kommt von nicht zu wissen, was der Wert mit in das "Benutzername" - parameter. Ich habe versucht, alle Variationen, die ich denken kann und am Ende immer einer der drei Fehler:

A) NO_OBJECT - ich nehme an, das bedeutet, es ist mit der Verbindung zu AD richtig, kann aber nicht finden was ich Suche.

B) DIR_ERROR - ich nehme an, das bedeutet, es können in einem AD richtig funktioniert, aber nicht weiß, was ich will, es zu tun, nachdem die.

C) irgendeine Art von ref-Fehler, der passiert nur wenn ich nicht qualifizieren, der DC, so dass ich denke, dass ist ziemlich viel gegeben.

Hier ist der code, den ich verwende:

public void changePassword(String username, String password) {
    ModificationItem[] mods = new ModificationItem[1];
    String newQuotedPassword = "\"" + password + "\"";
    byte[] newUnicodePassword = newQuotedPassword.getBytes();
    try {
        newUnicodePassword = newQuotedPassword.getBytes("UTF-16LE");
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    }
    mods[0] = new ModificationItem(DirContext.REPLACE_ATTRIBUTE, new BasicAttribute("unicodePwd", newUnicodePassword));
    try {

        ldapContext.modifyAttributes(username, mods);
    } catch (NamingException e) {
        System.out.println("Error changing password for '" + username + "': " + e.getMessage());
        e.printStackTrace();
    }           
}       
InformationsquelleAutor | 2009-09-08
Schreibe einen Kommentar