欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
Java對LDAP的操作方法

Java對LDAP的操作方法

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

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

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久