如何使用Java操作LDAP之LDAP连接(一)

JAVA操作LDAP有几种方法,这里主要介绍的是JNDI包,就是它:
    com.sun.jndi.ldap.LdapCtxFactory

 

    LDAP默认情况下使用的是BDB数据库,所以呢,操作LDAP就和操作数据库一样,要分几步走:
   

1、先导入所需的包,如下:
import java.util.ArrayList;
import java.util.Hashtable;
import javax.naming.Context;
import javax.naming.NamingEnumeration;
import javax.naming.directory.Attribute;
import javax.naming.directory.BasicAttribute;
import javax.naming.directory.BasicAttributes;
import javax.naming.directory.InitialDirContext;
import javax.naming.directory.DirContext;
import javax.naming.directory.Attributes;
import javax.naming.directory.ModificationItem;
import javax.naming.directory.SearchResult;
import javax.naming.NamingException;
import com.sun.net.ssl.internal.ssl.Debug;

 

2、连接LDAP,得到连接对象,如下:
DirContext ctx = null;                             //这个就是LDAP的连接对象
Hashtable env = new Hashtable();                   //定义一个哈希表来存连接信息

env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");   //记录工JNDI工厂
env.put(Context.PROVIDER_URL, ldap://192.168.0.1:389);        //LDAP的地址,要根据LDAP服务器IP进行修改,389是LDAP的默认端口
env.put(Context.SECURITY_AUTHENTICATION, "simple");    //这个是默认授权类型,一般不用改
env.put(Context.SECURITY_PRINCIPAL, "");               //LDAP的账户名,一般是这样的格式:dc=cs,dc=hunan,dc=com ,根据LDAP的配置情况来
env.put(Context.SECURITY_CREDENTIALS, "123456");       //对应上面账户的密码
          
try
{
      ctx = new InitialDirContext(env);         //初始化LDAP连接,连接成功后就可以用ctx来操作LDAP了
}
catch(NamingException e)
{
     e.printStackTrace();
}

这里建议大家把以上的代码写成一个函数,返回DirContext 这个对象,方便使用。

转载自:http://blog.sina.com.cn/s/blog_4da69d9a0100ja75.html

你可能感兴趣的:(ldap,java,credentials,authentication,数据库,import,服务器)