<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 23,comments - 12,trackbacks - 0
    轉自:http://www.webasp.net/article/13/12722_print.htm

    /* 1. 從LDAP服務器中提取常用名cn、可區分名字uid、密碼userpassword、Email地址mail
    * 其中使用Netscape LDAP服務器作為測試環境,使用simple認證方式登錄LDAP服務器。
    * 2. 用命名‘admin’密碼是‘1’,整個程序使用SDK1.4.1中的JNDI標準接口。
    * 3. 為了配合DOMINO數據庫開發,假設用戶登錄時候的IP地址已經記錄在了字段uid中,并用‘,’隔開
    * 程序最終將打印一個包括所有用戶名,密碼,IP地址的字符串。
    * 4. 在處理分離用戶名和IP地址的時候,引入了正則表達式的使用。
    */
    package mm;

    //引入LDAP的包
    import java.lang.*;
    import java.util.Hashtable;
    import java.util.Enumeration;
    import javax.naming.*;
    import javax.naming.directory.*;
    //import mm.splitString;

    public class JNDISearch{
    public static String INITCTX = "com.sun.jndi.ldap.LdapCtxFactory"; //驅動
    public static String MY_HOST = "ldap://localhost:389"; //主機地址和端口
    public static String MY_SEARCHBASE = "o=airius.com"; //基點入口
    public static String MY_FILTER = "(mail=west)"; //過濾條件
    public static String MGR_DN="uid=admin,ou=Administrators,ou=TopologyManagement,o=NetscapeRoot"; //用戶名
    public static String MGR_PW="1"; //密碼
    public static String MY_ATTRS[] = {/*"cn","userpassword","mail",*/"cn"};
    //StringBuffer res = new StringBuffer(); //用來輸入名字,IP地址的對象
    public static String temp = new String();


    public String search() throws Exception{
    StringBuffer res = new StringBuffer();
    try{
    //建立連接
    Hashtable env = new Hashtable();
    env.put(Context.INITIAL_CONTEXT_FACTORY,INITCTX);
    env.put(Context.PROVIDER_URL,MY_HOST);
    env.put(Context.SECURITY_AUTHENTICATION,"simple"); //使用簡單認證來認證用戶
    env.put(Context.SECURITY_PRINCIPAL,MGR_DN);
    env.put(Context.SECURITY_CREDENTIALS,MGR_PW);
    DirContext ctx = new InitialDirContext(env);

    //設置查詢范圍并開始查詢
    SearchControls constraints = new SearchControls();
    constraints.setSearchScope(SearchControls.SUBTREE_SCOPE);
    NamingEnumeration results = ctx.search(MY_SEARCHBASE,MY_FILTER,constraints);

    //打印查詢結果
    while (results != null && results.hasMore()){
    SearchResult sr = (SearchResult) results.next();
    //String dn = sr.getName();
    String dn = sr.getName()+","+MY_SEARCHBASE;
    System.out.println("==============================================");
    System.out.println("Distinguished Name is: "+dn);

    // 打印指定的字段//////////////////////////////////////////////////////////////////
    Attributes ar = ctx.getAttributes(dn,MY_ATTRS);
    if(ar==null) {
    //對應的uid沒有多余的屬性
    System.out.println("Entry "+dn+" has none of the specified attributes\n");
    } else {
    //開始顯示對應的字段
    for(int i=0;iAttribute attr = ar.get(MY_ATTRS[i]);
    if(attr!=null) {
    System.out.print(MY_ATTRS[i]+" : ");
    for(Enumeration vals = attr.getAll();
    vals.hasMoreElements(); ) {
    temp = (String)vals.nextElement();
    System.out.println("\t"+temp);
    res.append(temp+"/");
    }
    }
    System.out.println("\n");
    }
    ///////////////////////////////////////////////////////////////////////////////////


    /* 打印全部的字段///////////////////////////////////////////////////////////////////
    Attributes attrs = sr.getAttributes();
    for(NamingEnumeration ne = attrs.getAll();
    ne.hasMoreElements(); ){
    Attribute attr = (Attribute) ne.next();
    String attrID = attr.getID();
    System.out.println(attrID+": ");
    for(Enumeration vals = attr.getAll();vals.hasMoreElements(); ){
    System.out.println("\t"+vals.nextElement());
    }
    *//////////////////////////////////////////////////////////////////////////////////
    }
    }
    }catch (Exception e){
    e.printStackTrace();
    System.exit(1);
    }
    System.out.println(res.toString()+"\n\n\n\n");

    //splitString sp = new splitString();
    //System.out.println("一共有"+sp.splitString(res.toString()).length+"個返回"); //打印顯示結果,計算返回的數組值
    //return sp.splitString(res.toString());
    return res.toString();

    }

    ///////////////////////////////////////////////////////////////////////////////////////////
    // 使用正則表達式來分揀提取的字符串 ///////////////////////////////////
    ///////////////////////////////////////////////////////////////////////////////////////////

    }
    posted on 2005-10-27 16:30 my java 閱讀(470) 評論(0)  編輯  收藏 所屬分類: JNDI
    主站蜘蛛池模板: 国产av无码专区亚洲av毛片搜 | 日本一道本高清免费| 久久久久亚洲精品无码蜜桃| 国产精品极品美女自在线观看免费 | 免费一级毛suv好看的国产网站| 国产精品免费电影| 亚洲av午夜国产精品无码中文字 | 全部免费国产潢色一级| 国产精品无码亚洲一区二区三区| 免费羞羞视频网站| 国产成人高清亚洲一区91| 国产传媒在线观看视频免费观看| 国产偷国产偷亚洲高清在线| 亚洲日韩国产一区二区三区| 免费在线观看h片| 亚洲午夜久久久精品电影院| 4399好看日本在线电影免费| 亚洲老熟女五十路老熟女bbw | 色婷婷六月亚洲综合香蕉| 亚洲va中文字幕无码| 国产精品小视频免费无限app | 亚洲av无码专区在线播放| 97在线视频免费| 亚洲 日韩 色 图网站| 国产又大又长又粗又硬的免费视频| 亚洲.国产.欧美一区二区三区| www国产亚洲精品久久久| 拍拍拍无挡免费视频网站| 国产免费69成人精品视频| jyzzjyzz国产免费观看| 亚洲欧洲精品在线| 国产免费av一区二区三区| 天堂在线免费观看| 亚洲av永久无码精品天堂久久| 免费人成在线观看视频播放| 18禁超污无遮挡无码免费网站| ass亚洲**毛茸茸pics| 亚洲美日韩Av中文字幕无码久久久妻妇| 亚洲精品无码aⅴ中文字幕蜜桃| 国产va精品免费观看| 男女交性无遮挡免费视频|