1. 程式人生 > >如何使用Java操作LDAP之LDAP連線(一)

如何使用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