<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
    主站蜘蛛池模板: 天天摸天天操免费播放小视频| 免费人成毛片动漫在线播放| 毛片免费观看网址| 亚洲国产精品日韩在线观看| **aaaaa毛片免费| 亚洲AV一二三区成人影片| 免费精品国偷自产在线在线| 亚洲av永久无码嘿嘿嘿| 久久精品网站免费观看| 亚洲人片在线观看天堂无码| 国产精品另类激情久久久免费 | 亚洲精品无码一区二区| 宅男666在线永久免费观看| 日本亚洲高清乱码中文在线观看| 亚洲国产婷婷香蕉久久久久久| 国产男女爽爽爽免费视频 | 视频一区二区三区免费观看| 亚洲国产av无码精品| 国产在线观看无码免费视频| 亚洲AV无码一区二区三区DV| 波多野结衣在线免费视频| 亚洲欧美日韩中文字幕一区二区三区 | 免费无码一区二区| 伊人久久精品亚洲午夜| 91香蕉在线观看免费高清| 久久精品国产亚洲av麻豆图片| 四只虎免费永久观看| 3344在线看片免费| 涩涩色中文综合亚洲| 亚洲成人高清在线| 最近免费2019中文字幕大全| 最新亚洲精品国偷自产在线| 亚洲精品黄色视频在线观看免费资源 | 亚洲精品国产啊女成拍色拍| 国产精品另类激情久久久免费 | 最近最新中文字幕完整版免费高清| 色综合久久精品亚洲国产| 国产aⅴ无码专区亚洲av| 青苹果乐园免费高清在线| 亚洲免费无码在线| 亚洲国产中文在线二区三区免|