麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Java > 正文

JAVA_基本LDAP操作實例

2019-11-26 15:57:45
字體:
來源:轉載
供稿:網友

一、簡介

Lightweight Directory Access Protocol (LDAP),輕型目錄訪問協議是一個訪問在線目錄服務的協議。下面的例子中簡單介紹在java中隊ldap的增刪該查功能。目錄結構為:

CD=CAS,DC=MYDC

--cn=users

----uid=zhangsan

二、示例
1、通過LdapContext連接ldap

復制代碼 代碼如下:

/**
 * 連接LDAP
 */ 
@SuppressWarnings({ "rawtypes", "unchecked" }) 
public LdapContext connetLDAP() throws NamingException { 
    // 連接Ldap需要的信息 
    String ldapFactory = "com.sun.jndi.ldap.LdapCtxFactory"; 
    String ldapUrl = "ldap:/IP:port";// url 
    String ldapAccount = "cn=root"; // 用戶名 
    String ldapPwd = "password";//密碼 
    Hashtable env = new Hashtable(); 
    env.put(Context.INITIAL_CONTEXT_FACTORY, ldapFactory); 
    // LDAP server 
    env.put(Context.PROVIDER_URL, ldapUrl); 
    env.put(Context.SECURITY_AUTHENTICATION, "simple"); 
    env.put(Context.SECURITY_PRINCIPAL, ldapAccount); 
    env.put(Context.SECURITY_CREDENTIALS, ldapPwd); 
    env.put("java.naming.referral", "follow"); 
    LdapContext ctxTDS = new InitialLdapContext(env, null); 
    return ctxTDS; 


2、增加用戶zhangsan
復制代碼 代碼如下:
 
// 添加 
    public void testAdd() throws Exception { 
        LdapContext ctx = connetLDAP(); 
        Attributes attrs = new BasicAttributes(true); 
        Attribute objclass = new BasicAttribute("objectclass"); 
        // 添加ObjectClass 
        String[] attrObjectClassPerson = { "inetOrgPerson", "organizationalPerson", "person", "top" }; 
        Arrays.sort(attrObjectClassPerson); 
        for (String ocp : attrObjectClassPerson) { 
            objclass.add(ocp); 
        } 
        attrs.put(objclass); 
        String uid = "zhangsan"; 
        String userDN = "uid=" + uid + "," + "cn=users,dc=cas,dc=mydc"; 
        // 密碼處理 
        // attrs.put("uid", uid); 
        attrs.put("cn", uid); 
        attrs.put("sn", uid); 
        attrs.put("displayName", "張三"); 
        attrs.put("mail", "[email protected]"); 
        attrs.put("description", ""); 
        attrs.put("userPassword", "Passw0rd".getBytes("UTF-8")); 
        ctx.createSubcontext(userDN, attrs); 
    } 

3、刪除用戶zhangsan

復制代碼 代碼如下:

//刪除 
    public void testRemove() throws Exception { 
        LdapContext ctx = connetLDAP(); 
        String uid = "zhangsan"; 
        String userDN = "uid=" + uid + "," + "cn=users,dc=cas,dc=mydc"; 
        ctx.destroySubcontext(userDN); 

    } 

4、修改zhangsan的郵件地址

復制代碼 代碼如下:
 
//修改 
    public boolean testModify() throws Exception { 
        boolean result = true; 
        LdapContext ctx = connetLDAP(); 
        String uid = "zhangsan"; 
        String userDN = "uid=" + uid + "," + "cn=users,dc=cas,dc=mydc"; 
        Attributes attrs = new BasicAttributes(true); 
        attrs.put("mail", "[email protected]"); 
        ctx.modifyAttributes(userDN, DirContext.REPLACE_ATTRIBUTE, attrs); 
        return result; 

    } 

5、查找用戶
復制代碼 代碼如下:

//查詢 
    public void testSearch() throws Exception { 
        LdapContext ctx = connetLDAP(); 
        // 設置過濾條件 
        String uid = "zhangsan"; 
        String filter = "(&(objectClass=top)(objectClass=organizationalPerson)(uid=" + uid + "))"; 
        // 限制要查詢的字段內容 
        String[] attrPersonArray = { "uid", "userPassword", "displayName", "cn", "sn", "mail", "description" }; 
        SearchControls searchControls = new SearchControls(); 
        searchControls.setSearchScope(SearchControls.SUBTREE_SCOPE); 
        // 設置將被返回的Attribute 
        searchControls.setReturningAttributes(attrPersonArray); 
        // 三個參數分別為: 
        // 上下文; 
        // 要搜索的屬性,如果為空或 null,則返回目標上下文中的所有對象; 
        // 控制搜索的搜索控件,如果為 null,則使用默認的搜索控件 
        NamingEnumeration<SearchResult> answer = ctx.search("cn=users,dc=cas,dc=mydc", filter.toString(), searchControls); 
        // 輸出查到的數據 
        while (answer.hasMore()) { 
            SearchResult result = answer.next(); 
            NamingEnumeration<? extends Attribute> attrs = result.getAttributes().getAll(); 
            while (attrs.hasMore()) { 
                Attribute attr = attrs.next(); 
                System.out.println(attr.getID() + "=" + attr.get()); 
            } 
            System.out.println("============"); 
        } 
    } 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: aaaaa国产欧美一区二区 | 久久久久久久久成人 | 国产乱淫av一区二区三区 | 亚洲一区二区三区日本久久九 | 中文字幕网址 | 毛片免费看电影 | 国产成人精品午夜视频' | 久草视频国产在线 | 久久吊| 黄色a级片视频 | 国产在线精品一区二区三区不卡 | 九九热视频这里只有精品 | 久久九九热re6这里有精品 | 嫩呦国产一区二区三区av | 久久久久久久久久久久久国产精品 | 欧美乱码精品一区 | 欧美精品第1页 | 国产精品一区网站 | 成年人观看免费视频 | 黄色片视频在线观看 | 成人一级片毛片 | 成人做爽爽爽爽免费国产软件 | 国产精品久久久久久久久久久久久久久久 | 欧美大屁股精品毛片视频 | 欧美精品一级片 | av免费入口 | 日韩欧美精品电影 | 97久久精品一区二区三区观看 | 欧美成人国产va精品日本一级 | 在线2区 | 久久国产精品久久久久久电车 | 一级毛片播放 | 一级电影在线免费观看 | 免费特黄 | 国产99久久久国产精品 | 国产99久久久国产精品下药 | 精品亚洲一区二区三区 | 久草最新网址 | 欧美一级美国一级 | 黄色片在线播放 | 欧美激情精品久久久久久久久久 |