验证代码如下:
String account = "Manager"; //binddn 
        String password = "pwd";    //bindpwd
        String root = "dc=scut,dc=com"; // root
        Hashtable env = new Hashtable();
        env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
        env.put(Context.PROVIDER_URL, "ldap://localhost:389/" + root);
        env.put(Context.SECURITY_AUTHENTICATION, "simple");
        env.put(Context.SECURITY_PRINCIPAL, "cn="+account+","+root );
        env.put(Context.SECURITY_CREDENTIALS, password);
        try {
            // 链接ldap
            ctx = new InitialDirContext(env);
            System.out.println("认证成功");
        } catch (javax.naming.AuthenticationException e) {
            System.out.println("认证失败");
        } catch (Exception e) {
            System.out.println("认证出错:");
            e.printStackTrace();
        }运行之后总是报ldap:49用户找不到的错误,
如果把env.put(Context.SECURITY_PRINCIPAL, "cn="+account+","+root );
        env.put(Context.SECURITY_CREDENTIALS, password);注释掉就能通过匿名验证,这是什么原因?请高手指点。