免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Java對LDAP的操作方法

Java對LDAP的操作方法

最近因為項目需要,研究了下大名久仰的LDAP。它以目錄樹結構存放數據信息,和數據庫以表結構存放數據不同。網絡上關于LDAP的介紹很多,不是本文的重點。作為程序員,最關心的就是如何寫程序去訪問和操作LDAP數據,這也是本文所要討論的,但是局限于java程序。

一.JNDI(JAVA 命名及目錄接口)
JNDI是JAVA為命名及目錄服務訪問制定的基礎接口標準,用于訪問包括DNS,NIS,LDAP,文件系統(tǒng)等任何以樹目錄形式存在目標對象,并且基本上可保持訪問方式的一致(意味著代碼共用)。對于不同的目錄類型,JNDI通過使用不同的目錄驅動,以保證訪問方式的一致。以下連接可獲得較詳細的講解和例程:
http://java.sun.com/products/jndi/tutorial/。經常使用的LDAP驅動有JDK自帶的LDAP provider,還有IBM的PROVIDER,以及NOVEL的JNDI產品。
 
二.jldap
JLDAP是由Novell開發(fā)的,原是針對Novel的NDS目錄設計的JAVA訪問工具。NOVEL的NDS和網景(NETSCAPE)的目錄是工具界最早的目錄產品。JLDAP并非JNDI的服務供應者,而是同一抽象層次下的訪問工具集。與JNDI-LDAP相比,JLDAP更接近于類關系數據庫的訪問方式。NDS是遵守LDAP協(xié)議的并進行了擴展的類MAD產品。而NOVEL也已把JLDAP捐獻給了OPENLDAP開源項目,可以世界范圍內自由使用。與JNDI相比,JLDAP無須繼承DirContext才能實現添加,也無需預先生成添加的類,可以象普通數據訪問那樣,生成連接,然后使用add方法添加。這樣,添加的靈活性要強于JNDI。
 
三.JdbcLDAP驅動
網絡上有2種形式的jdbc-Ldap驅動程序,提供以sql的語法訪問ldap數據庫。
1.OcterString的開源驅動
http://www.openldap.org/jdbcldap/提供下載。但是由于2005年11月被OERACLE并購,網絡上難以找到相關的資料,唯一可以參考的資料是其所帶的JDBC-LDAP Getting Started.pdf文檔。最初的1.0版本在連接時會有錯誤拋出,卻可以正常執(zhí)行sql操作。通過自己編譯source可以得到較高的版本(難以找到最新版本的jar包),此版本可以正常使用。值得注意的是,在文檔中,關于刪除操作的ps.excute(SQL)有問題,應該改成ps.excute(),不應該帶參數,因為delete操作不會返回結果,否則會產生空指針異常(NullPointerException)。實際上,這個驅動引用了上面提到的jldap類庫。在使用過程中,發(fā)現了本驅動的一些bug。
其一,查詢結果集比實際數據多一條NULL的記錄,所以在取數據時的循環(huán)判斷要追加其它條件;
其二,查詢記錄后,會采用Base64的算法對數據進行壓縮,但是對中文字符處理后會產生失真現象。需要更改com.octetstring.jdbcLdap.jndi.UnpackResults.java源代碼。文件中對查詢結果進行了Base64.encode()的處理。而Base64是由novell提供的ldap.jar包中的com.novell.ldap.util.Base64.java類。去除Base64的處理并進行適當的更改,能夠正常顯示中文。根據novell的ldap.jar包的API文檔,Base64處理用于轉換字符流為不可直接識別的字節(jié)碼,并且轉換后的數據量只有轉換之前的33%,節(jié)省了空間,提高了效率,但是對CJK文本的轉換會失真。
另外,由于使用了jdbcldap驅動,考慮把LDAP數據庫的節(jié)點映射為一個表,把節(jié)點屬性作為表項,采用Hibernate框架進行數據操作,這種思想在做現存的Hibernate框架實現的系統(tǒng)轉LDAP單點登錄時,是一種理想方案。實際上,這樣的映射可行,但是由于沒有合適的Hibernate Dialect方言,轉換出來的SQL操作無法正常執(zhí)行。這種方案需要自行實現一個合適的Hibernate Dialect類。
 
2.Novell的jdbcldap驅動
http://developer.novell.com/ndk/ldapjdbc.htm,Novell提供的專用于它的eDirectory產品的驅動,只提供了查詢操作。
 
 
歡迎訪問 風卷流云 的blog
轉載請保留出處!
本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現有害或侵權內容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
開發(fā)基于JNDI的應用程序
LDAP應用技術簡述
JNDI介紹
初識JNDI
JNDI和LDAP(1)
JNDI 學習
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服