<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
    主站蜘蛛池模板: 成年在线观看网站免费| 99热这里只有精品6免费| 亚洲av无码兔费综合| 麻豆亚洲AV成人无码久久精品 | 国产亚洲?V无码?V男人的天堂| 精品国产日韩亚洲一区| 曰批免费视频播放免费| 13一14周岁毛片免费| 国产成人免费a在线视频app| 日韩亚洲变态另类中文| 亚洲国产精品专区| 婷婷国产偷v国产偷v亚洲| 国产免费久久精品久久久| 91亚洲导航深夜福利| 国产亚洲情侣久久精品| 1000部夫妻午夜免费| 亚洲制服丝袜第一页| 成人av片无码免费天天看| 思思re热免费精品视频66| 国产国拍亚洲精品mv在线观看| 亚洲αⅴ无码乱码在线观看性色| 久久成人免费大片| 亚洲成a人一区二区三区| 亚洲乱码一二三四区麻豆| 成人一a毛片免费视频| 亚洲欧洲日产国码av系列天堂| 亚洲国产精品18久久久久久| 亚洲 国产 图片| 色噜噜噜噜亚洲第一| 亚洲欭美日韩颜射在线二| 日韩精品人妻系列无码专区免费| 国产婷婷综合丁香亚洲欧洲| 亚洲av中文无码| 久久午夜夜伦鲁鲁片免费无码影视| 亚洲另类春色校园小说| 亚洲?v无码国产在丝袜线观看| 久久精品成人免费网站| 亚洲精品夜夜夜妓女网| 好猛好深好爽好硬免费视频| heyzo亚洲精品日韩| 亚洲精品免费观看|