以下测试用例我用来验证我的ldap目录中的用户,我能够连接到服务器并更新值。我设置了用户密码但是当我尝试检索它时,获取空值。
因为我们无法以纯文本格式检索ldap密码,所以任何人都可以帮我验证它。
public void testFastBind() throws NamingException {
ldapUtils.setBaseDN("ou=testusers,O=userstore,c=corp");
Hashtable<String, Object> env = new Hashtable<String, Object>();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "ldap://10.9.196.21:389");
env.put(Context.SECURITY_PRINCIPAL, "cn=mru1,OU=ADMIN,O=userstore,C=corp");
env.put(Context.SECURITY_CREDENTIALS, "tcs123");
env.put(Context.SECURITY_AUTHENTICATION, "simple");
// authenticating to the ldap server
DirContext ctx = ldapUtils.getContext("ldap://10.9.196.21:389", "cn=TAR4ADM,OU=ADMIN,O=userstore,C=corp",
"ADldsadmin16");
// domain name to authenticate
String DN = "cn=mru1,ou=testusers,O=userstore,c=corp";
// searching for the domain name
try {
ctx.lookup(DN);
} catch (NamingException e) {
e.printStackTrace();
}
Attributes attribute = ctx.getAttributes(DN);
System.out.println("password =" + attribute.get("userPassword"));
// password value is null
boolean flag = true;
try {
// to authenticatectx mru1
DirContext context = new InitialDirContext(env);
} catch (AuthenticationException e) {
flag = false;
}
System.out.println("connection successful : " + flag);
}
提前致谢。