使用java连接到OpenLDAP
我已经在默认端口389上安装了OpenLDAP,它正在破坏端口, 我想搜索目录中的所有人,我正在使用我在这个网站上找到的代码使用java连接到OpenLDAP,ldap,Ldap,我已经在默认端口389上安装了OpenLDAP,它正在破坏端口, 我想搜索目录中的所有人,我正在使用我在这个网站上找到的代码 final String ldapAdServer = "ldap://"; final String ldapSearchBase = "ou=People,dc=maxcrc,dc=com"; final String ldapUsername = "Manager"; final String ldapPassword
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();
我想这是主机名的问题,我找不到正确的主机名。如何找到需要连接的url
Exception in thread "main" javax.naming.InvalidNameException: [LDAP: error code 34 - invalid DN]
我想这是主机名的问题,我找不到正确的主机名
不,这是DN的问题。DN不是主机名。如果是主机名问题,则会出现某种连接异常。如果您收到LDAP错误代码,则证明您已连接到LDAP服务器
这可能是经理DN的问题。但无论如何,您不应该以LDAP根帐户的身份登录。这是针对OpenLDAP本身的。创建另一个具有足够权限的帐户并使用它。如果我将Context.SECURITY\u身份验证设置为none,则在线程“main”javax.naming.NoInitialContextException中会出现以下错误异常:需要在环境或系统属性中指定类名,或者作为小程序参数,或者在应用程序资源文件中:java.naming.factory.initialize如果您在Mac上,请确保build.xml文件中没有任何
“
Exception in thread "main" javax.naming.InvalidNameException: [LDAP: error code 34 - invalid DN]