Wir verwenden LDAP für Windows-Authentifizierung in unserer Anwendung.Kann sich mit dem alten Passwort in LDAP einloggen
Der Code sieht aus wie
public LdapContext adAuth(String userName, String passWord, String domainName, String url,String port) {
LdapContext ctx = null;
try{
Hashtable<String, String> env = new Hashtable<String, String>();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "ldap://"+url+":"+port);
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, userName + "@" + domainName);
env.put(Context.SECURITY_CREDENTIALS, passWord);
ctx = new InitialLdapContext(env, null);
}catch(NamingException nex){
ctx = null;
}
return ctx;
}
Dies funktioniert gut. Aber das Problem ist, wenn ein Benutzer sein Passwort ändert und ein neues Passwort einrichtet, kann er sich mit dem neuen Passwort und dem Passwort einloggen. Wie verhindere ich das? Der Benutzer sollte sich nur mit dem neuen Passwort anmelden können.
Welche Windows-Version verwenden Sie? –