0

好吧,这是我的 java 代码,它允许我连接到 ldap 服务器。

  public static Hashtable getConnexion()
           {

       env.put(Context.INITIAL_CONTEXT_FACTORY,
            "com.sun.jndi.ldap.LdapCtxFactory");
       env.put(Context.PROVIDER_URL, "ldap://localhost:10389");
       env.put(Context.SECURITY_AUTHENTICATION, "simple");
       env.put(Context.SECURITY_PRINCIPAL, "uid=admin,ou=system"); 
       env.put(Context.SECURITY_CREDENTIALS, "secret");
       return env;

       }

谢谢

4

2 回答 2

0

另一种选择。您可以将上述属性作为 JVM 属性。

于 2012-09-20T09:01:42.070 回答
0

如果 LDAP 客户端是独立的,则可以通过多种方式对其进行配置:

使用UnboundID LDAP SDK LDAPCommandLineTool类并为程序指定参数。例如,如果包含该main方法的类的名称是samplecode.MyLdapConnectionClass

java -cp my-classpath samplecode.MyLdapConnectionClass --hostname localhost \
       --port 10389 \
       --bindDN "uid=admin,ou=system" \
       --bindPassword "secret"

UnboundID LDAP SDKLDAPCommandLineTool类自动处理所有这些类型的命令行参数,例如:

  • --hostname(或-h)用于主机名
  • --port(或-p)用于端口
  • 所有 SASL 和简单 BIND 参数
  • 所有安全连接参数,例如 (--useSSL--useStartTLS)

该类LDAPCommandLineTool继承了一个方法,该方法getConnection()与这些命令行参数指定的服务器建立连接。

或者指定属性文件的名称,并使用 Apache Commons Configuration或load().java.util.properties

无论哪种方式,JNDI 都不应该用于新代码。请改用 UnboundID LDAP SDK。

也可以看看

于 2012-09-20T09:47:28.323 回答