无法在ldap服务器中验证其他用户

时间:2016-08-09 12:33:52

标签: java ldap jndi

以下测试用例我用来验证我的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);
}

提前致谢。

0 个答案:

没有答案