应该不可能检索密码(没有人应该能够获得另一个用户的密码)。
但是,如果他们在以该帐户登录时访问,则不需要检查密码。你可以去authentication.getPrincipal的事实表明,他们是作为该用户登录 - 你不再需要密码。
或者,如果他们正在使用给定的Windows身份验证用户名和密码访问,而没有以该用户身份登录,可能有办法查看他们的密码是否有效,但我怀疑它,因为IsValid()布尔调用会让你知道你刚刚移交的密码是有效的,因为Windows泄露了他们的密码。
编辑:
的Java LDAP认证码(来源:http://java.sun.com/products/jndi/tutorial/ldap/security/ldap.html)
// Set up the environment for creating the initial context
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY,
"com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "ldap://localhost:389/o=JNDITutorial");
// Authenticate
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, authentication.getPrincipal().toString());
env.put(Context.SECURITY_CREDENTIALS, "PASSWORD");
// Create the initial context
DirContext ctx = new InitialDirContext(env);
我刚刚得知眼前这个属性,对不起:)我已经做到了。 – 2010-06-30 08:15:42