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

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

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

    posts - 30,  comments - 85,  trackbacks - 0

     LDAP的英文全稱是Lightweight Directory Access Protocol,一般都簡稱為LDAP。它是基于X.500標(biāo)準(zhǔn)的,但是簡單多了并且可以根據(jù)需要定制。與X.500不同,LDAP支持TCP/IP,這對訪問Internet是必須的。LDAP的核心規(guī)范在RFC中都有定義,所有與LDAP相關(guān)的RFC都可以在LDAPman RFC網(wǎng)頁中找到。現(xiàn)在LDAP技術(shù)不僅發(fā)展得很快而且也是激動(dòng)人心的。在企業(yè)范圍內(nèi)實(shí)現(xiàn)LDAP可以讓運(yùn)行在幾乎所有計(jì)算機(jī)平臺上的所有的應(yīng)用程序從 LDAP目錄中獲取信息。LDAP目錄中可以存儲(chǔ)各種類型的數(shù)據(jù):電子郵件地址、郵件路由信息、人力資源數(shù)據(jù)、公用密匙、聯(lián)系人列表,等等。通過把 LDAP目錄作為系統(tǒng)集成中的一個(gè)重要環(huán)節(jié),可以簡化員工在企業(yè)內(nèi)部查詢信息的步驟,甚至連主要的數(shù)據(jù)源都可以放在任何地方。

    以下是對ldap中進(jìn)行連接,人員的增刪改查的過程。希望對初學(xué)者有一定的幫助。

    package net.risesoft.ldap;

    import java.util.Enumeration;
    import java.util.Hashtable;

    import javax.naming.Context;
    import javax.naming.NamingEnumeration;
    import javax.naming.NamingException;
    import javax.naming.directory.Attribute;
    import javax.naming.directory.Attributes;
    import javax.naming.directory.BasicAttribute;
    import javax.naming.directory.BasicAttributes;
    import javax.naming.directory.DirContext;
    import javax.naming.directory.InitialDirContext;
    import javax.naming.directory.ModificationItem;
    import javax.naming.directory.SearchControls;
    import javax.naming.directory.SearchResult;

    public class LdapTest {
     public static void main(String[] args) {
      String account = "admin";
      String password = "1";
      String root = "o=com"; // root

      Hashtable env = new Hashtable();
      env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
      env.put(Context.PROVIDER_URL, "ldap://localhost:389/" + root);
      env.put(Context.SECURITY_AUTHENTICATION, "simple");
      env.put(Context.SECURITY_PRINCIPAL, "cn=" + account + "," + root);
      env.put(Context.SECURITY_CREDENTIALS, password);

      DirContext ctx = null;
      try {
       // 鏈接ldap
       ctx = new InitialDirContext(env);
       System.out.println("ldap認(rèn)證成功");

       // 3.添加節(jié)點(diǎn)
       String newUserName = "user2";
       BasicAttributes attrsbu = new BasicAttributes();
       BasicAttribute objclassSet = new BasicAttribute("objectclass");
       objclassSet.add("person");
       objclassSet.add("top");
       objclassSet.add("organizationalPerson");
       objclassSet.add("inetOrgPerson");
       attrsbu.put(objclassSet);
       attrsbu.put("sn",   newUserName);
       attrsbu.put("uid",   newUserName);
       ctx.createSubcontext("cn=" + newUserName, attrsbu);

       // 5.修改節(jié)點(diǎn)
       account = "user2";
       String newDisplayName = "newDisplayName";
       ModificationItem modificationItem[] = new ModificationItem[1];
       modificationItem[0] = new ModificationItem(DirContext.REPLACE_ATTRIBUTE, new BasicAttribute("displayName", newDisplayName));
       ctx.modifyAttributes("cn=" + account, modificationItem);

       // 查詢節(jié)點(diǎn)
       SearchControls constraints = new SearchControls();
       constraints.setSearchScope(SearchControls.SUBTREE_SCOPE);
       // constraints.setSearchScope(SearchControls.ONELEVEL_SCOPE);
       NamingEnumeration en = ctx.search("", "cn=user2", constraints); // 查詢所有用戶
       while (en != null && en.hasMoreElements()) {
        Object obj = en.nextElement();
        if (obj instanceof SearchResult) {
         SearchResult si = (SearchResult) obj;
         System.out.println("name:   " + si.getName());
         Attributes attrs = si.getAttributes();
         if (attrs == null) {
          System.out.println("No   attributes");
         } else {
          for (NamingEnumeration ae = attrs.getAll(); ae.hasMoreElements();) {
           Attribute attr = (Attribute) ae.next();
           String attrId = attr.getID();

           for (Enumeration vals = attr.getAll(); vals.hasMoreElements();) {
            System.out.print(attrId + ":   ");
            Object o = vals.nextElement();
            if (o instanceof byte[])
             System.out.println();// new
                   // String((byte[])o)
            else
             System.out.println(o);
           }
          }
         }
        } else {
         System.out.println(obj);
        }
        System.out.println();
       }

       // 4.刪除節(jié)點(diǎn)
       account = "user2";
       ctx.destroySubcontext("cn=" + account);

      } catch (javax.naming.AuthenticationException e) {
       System.out.println("認(rèn)證失敗");
      } catch (Exception e) {
       System.out.println("認(rèn)證出錯(cuò):");
       e.printStackTrace();
      }

      if (ctx != null) {
       try {
        ctx.close();
       } catch (NamingException e) {
        // ignore
       }
      }
      System.exit(0);
     }
    }

    posted on 2007-05-31 14:25 安文豪 閱讀(6968) 評論(4)  編輯  收藏

    FeedBack:
    # re: 一個(gè)完整的ldap操作的例子
    2007-06-01 09:06 | popoer
    不知道樓主有沒有l(wèi)dap排序和分頁的例子?  回復(fù)  更多評論
      
    # re: 一個(gè)完整的ldap操作的例子[未登錄]
    2008-07-31 12:27 | 過客
    Good  回復(fù)  更多評論
      
    # re: 一個(gè)完整的ldap操作的例子[未登錄]
    2011-08-02 13:51 | 海風(fēng)
    多謝分享!  回復(fù)  更多評論
      
    # re: 一個(gè)完整的ldap操作的例子
    2012-12-17 18:24 |
    謝謝^_^_^  回復(fù)  更多評論
      

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     

    <2007年5月>
    293012345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    常用鏈接

    留言簿(6)

    隨筆檔案(28)

    文章分類(3)

    文章檔案(4)

    最新隨筆

    搜索

    •  

    積分與排名

    • 積分 - 86511
    • 排名 - 666

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 伊人久久大香线蕉亚洲五月天 | 亚洲欧美日韩综合俺去了| 成全视频在线观看免费| 亚洲一区日韩高清中文字幕亚洲| 午夜亚洲国产精品福利| 国产成人精品男人免费| 风间由美在线亚洲一区| 免费永久看黄在线观看app| 麻豆亚洲AV成人无码久久精品 | 波多野结衣亚洲一级| 在线视频免费观看高清| 亚洲成a人片在线不卡一二三区 | 亚洲AV无码国产精品永久一区| 毛片在线看免费版| 亚洲国产欧美国产综合一区| 国产午夜无码视频免费网站| 色吊丝免费观看网站| 自拍偷自拍亚洲精品第1页 | 亚洲精品高清视频| 67194国产精品免费观看| 亚洲男人天堂2018av| 日韩免费一级毛片| 一级做a爰全过程免费视频毛片| 亚洲人成伊人成综合网久久久| 久章草在线精品视频免费观看| 亚洲国产视频网站| 四虎成人免费网址在线| h视频免费高清在线观看| 无码乱人伦一区二区亚洲| 久久精品女人天堂AV免费观看| 国产午夜亚洲精品不卡电影| 亚洲日本乱码在线观看| 在线看免费观看AV深夜影院| 亚洲精华液一二三产区| 亚洲日韩精品无码一区二区三区| 色影音免费色资源| 手机永久免费的AV在线电影网| 久久久亚洲精品国产| 日本免费电影一区| 国产真人无码作爱视频免费| 亚洲精品无码成人|