我安装了打开的LDAP,它在端口默认端口389上破坏了, 我想搜索目录中的所有人,我正在使用我在本网站上找到的代码
final String ldapAdServer = "ldap://";
final String ldapSearchBase = "ou=People,dc=maxcrc,dc=com";
final String ldapUsername = "Manager";
final String ldapPassword = "secret";
final String ldapAccountToLookup = "*";
Hashtable<String, Object> env = new Hashtable<String, Object>();
env.put(Context.SECURITY_AUTHENTICATION, "simple");
if(ldapUsername != null) {
env.put(Context.SECURITY_PRINCIPAL, ldapUsername);
}
if(ldapPassword != null) {
env.put(Context.SECURITY_CREDENTIALS, ldapPassword);
}
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, ldapAdServer);
//ensures that objectSID attribute values
//will be returned as a byte[] instead of a String
env.put("java.naming.ldap.attributes.binary", "objectSID");
// the following is helpful in debugging errors
//env.put("com.sun.jndi.ldap.trace.ber", System.err);
Context ctx = new InitialContext(env);
LdapContext ctxLap = new InitialLdapContext();
但是收到错误
Exception in thread "main" javax.naming.InvalidNameException: [LDAP: error code 34 - invalid DN]
我认为这是主机名的问题,我无法正确找到如何找到我需要连接的网址?
答案 0 :(得分:1)
Exception in thread "main" javax.naming.InvalidNameException: [LDAP: error code 34 - invalid DN]
我认为这是主机名的问题,我无法正确找到
没有。这是DN的问题。 DN不是主机名。如果是主机名问题,您将获得某种连接异常。如果您收到LDAP错误代码,则证明您已连接到LDAP服务器。
管理员DN可能存在问题。但是你不应该以LDAP root帐户登录。这是针对OpenLDAP本身的。创建具有足够权限的另一个帐户并使用该帐户。