0
我們在我們的應用程序中使用LDAP進行Windows身份驗證。可以在LDAP中使用舊密碼登錄
代碼看起來像
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;
}
這是工作的罰款。但問題是當用戶更改密碼並設置新密碼時,他可以使用新密碼和密碼登錄。我如何防止這種情況?用戶應該只能使用新密碼登錄。
你使用什麼Windows版本? –