最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JAVA_基本LDAP操作實例

 更新時間:2013年09月17日 16:24:53   作者:  
這篇文章介紹了JAVA_基本LDAP操作實例,有需要的朋友可以參考一下

一、簡介

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

CD=CAS,DC=MYDC

--cn=users

----uid=zhangsan

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

復(fù)制代碼 代碼如下:

/**
 * 連接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
復(fù)制代碼 代碼如下:
 
// 添加 
    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", "abc@163.com"); 
        attrs.put("description", ""); 
        attrs.put("userPassword", "Passw0rd".getBytes("UTF-8")); 
        ctx.createSubcontext(userDN, attrs); 
    } 

3、刪除用戶zhangsan

復(fù)制代碼 代碼如下:

//刪除 
    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的郵件地址

復(fù)制代碼 代碼如下:
 
//修改 
    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", "zhangsan@163.com"); 
        ctx.modifyAttributes(userDN, DirContext.REPLACE_ATTRIBUTE, attrs); 
        return result; 

    } 

5、查找用戶
復(fù)制代碼 代碼如下:

//查詢 
    public void testSearch() throws Exception { 
        LdapContext ctx = connetLDAP(); 
        // 設(shè)置過濾條件 
        String uid = "zhangsan"; 
        String filter = "(&(objectClass=top)(objectClass=organizationalPerson)(uid=" + uid + "))"; 
        // 限制要查詢的字段內(nèi)容 
        String[] attrPersonArray = { "uid", "userPassword", "displayName", "cn", "sn", "mail", "description" }; 
        SearchControls searchControls = new SearchControls(); 
        searchControls.setSearchScope(SearchControls.SUBTREE_SCOPE); 
        // 設(shè)置將被返回的Attribute 
        searchControls.setReturningAttributes(attrPersonArray); 
        // 三個參數(shù)分別為: 
        // 上下文; 
        // 要搜索的屬性,如果為空或 null,則返回目標(biāo)上下文中的所有對象; 
        // 控制搜索的搜索控件,如果為 null,則使用默認(rèn)的搜索控件 
        NamingEnumeration<SearchResult> answer = ctx.search("cn=users,dc=cas,dc=mydc", filter.toString(), searchControls); 
        // 輸出查到的數(shù)據(jù) 
        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("============"); 
        } 
    } 

您可能感興趣的文章:

相關(guān)文章

  • 解決Java & Idea啟動tomcat的中文亂碼問題

    解決Java & Idea啟動tomcat的中文亂碼問題

    這篇文章主要介紹了Java & Idea啟動tomcat的中文亂碼問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • Java中常用的設(shè)計模式之責(zé)任鏈模式詳解

    Java中常用的設(shè)計模式之責(zé)任鏈模式詳解

    這篇文章主要為大家詳細(xì)介紹了Java中常用的設(shè)計模式之責(zé)任鏈模式,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • springboot使用過濾器詳解

    springboot使用過濾器詳解

    本文主要介紹了過濾器的基本概念,過濾器的生命周期,以及如何通過注解方式和非注解方式實現(xiàn)過濾器,過濾器是客戶端與服務(wù)器資源文件之間的一道過濾網(wǎng),能夠幫助我們過濾不符合要求的請求,通常用作Session校驗
    2024-10-10
  • 深入分析Comparable與Comparator及Clonable三個Java接口

    深入分析Comparable與Comparator及Clonable三個Java接口

    接口不是類,而是對類的一組需求描述,這些類要遵從接口描述的統(tǒng)一格式進(jìn)行定義,這篇文章主要為大家詳細(xì)介紹了Java的Comparable,Comparator和Cloneable的接口,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-05-05
  • ssm框架上傳圖片保存到本地和數(shù)據(jù)庫示例

    ssm框架上傳圖片保存到本地和數(shù)據(jù)庫示例

    本篇文章主要介紹了ssm框架上傳圖片保存到本地和數(shù)據(jù)庫示例,主要使用了Spring+SpringMVC+MyBatis框架集合,有興趣的可以了解一下。
    2017-03-03
  • springboot整合mail實現(xiàn)郵箱的發(fā)送功能

    springboot整合mail實現(xiàn)郵箱的發(fā)送功能

    本文分步驟給大家介紹springboot整合mail實現(xiàn)郵箱的發(fā)送功能,代碼簡單易懂,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2021-09-09
  • Sparsearray稀疏數(shù)組原理及實例詳解

    Sparsearray稀疏數(shù)組原理及實例詳解

    這篇文章主要介紹了Sparsearray稀疏數(shù)組原理及實例詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-05-05
  • Mybatis使用命令生成逆向工程的方法

    Mybatis使用命令生成逆向工程的方法

    這篇文章主要介紹了Mybatis使用命令生成逆向工程的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • Java中使用Preconditions來檢查傳入?yún)?shù)介紹

    Java中使用Preconditions來檢查傳入?yún)?shù)介紹

    這篇文章主要介紹了Java中使用Preconditions來檢查傳入?yún)?shù)介紹,本文只是作為一個簡單的用法介紹,需要的朋友可以參考下
    2015-06-06
  • 淺談SpringBoot項目打成war和jar的區(qū)別

    淺談SpringBoot項目打成war和jar的區(qū)別

    這篇文章主要介紹了淺談SpringBoot項目打成war和jar的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11

最新評論

长宁县| 广灵县| 烟台市| 金川县| 和顺县| 靖远县| 万荣县| 安国市| 兰州市| 合江县| 新安县| 阿拉善右旗| 长武县| 金堂县| 宁国市| 万源市| 石楼县| 韶山市| 策勒县| 仪征市| 贵港市| 嘉义市| 富阳市| 青川县| 青铜峡市| 太和县| 监利县| 拉孜县| 花莲县| 雷州市| 岳阳市| 许昌市| 汤原县| 手游| 五家渠市| 朝阳市| 乌苏市| 黄平县| 连云港市| 曲沃县| 苍溪县|