<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
    主站蜘蛛池模板: 亚洲爽爽一区二区三区| 日本在线看片免费| 亚洲色大成网站www| 亚洲伊人精品综合在合线| 亚洲色偷偷av男人的天堂| 亚洲va中文字幕无码久久不卡| 亚洲线精品一区二区三区影音先锋 | 亚洲中文字幕乱码一区| 亚洲人成电影网站久久| 亚洲精华国产精华精华液好用 | 中文字幕日韩亚洲| 中文字幕亚洲乱码熟女一区二区| 亚洲中文字幕无码一区二区三区 | 亚洲av午夜成人片精品电影| 亚洲国产av无码精品| 国产日韩成人亚洲丁香婷婷| 亚洲永久无码3D动漫一区| 亚洲香蕉网久久综合影视| 亚洲免费精彩视频在线观看| 亚洲国产精品综合福利专区| 国产精品亚洲片夜色在线| 亚洲国产欧美一区二区三区| 免费播放国产性色生活片| 国产精品免费看久久久香蕉| 久久久久免费看黄a级试看| 亚洲免费中文字幕| 在线a毛片免费视频观看| 免费国产a国产片高清网站| 亚洲日本中文字幕天堂网| 亚洲VA成无码人在线观看天堂| 亚洲精品视频在线观看免费| 国产亚洲精品VA片在线播放| 一级做a毛片免费视频| 午夜精品射精入后重之免费观看 | 噜噜嘿在线视频免费观看| 又色又污又黄无遮挡的免费视| 亚洲桃色AV无码| 亚洲成a人片毛片在线| 国产成人亚洲午夜电影| baoyu122.永久免费视频| 日韩免费精品视频|