LDAP binary字段讀取

今天作LDAP發佈圖片,用binary屬性存儲。存儲沒有問題,可是讀取時發現字段變成String形式而且內容是亂碼,怎麼轉換都不能解決。java

最後度了下發現數組

       默認狀況下Attribute#get()返回的屬性值的格式都是字符串類型的,若是想指定某屬性的格式爲字節數組類型(好比某屬性可能在活動目錄中存儲的是圖片、Word等二進制文件,那麼返回字節數組類型會特別合適),須要事先在查找的上下文環境中指定:默認狀況下Attribute#get()返回的屬性值的格式都是字符串類型的,若是想指定某屬性的格式爲字節數組類型(好比某屬性可能在活動目錄中存儲的是圖片、Word等二進制文件,那麼返回字節數組類型會特別合適),須要事先在查找的上下文環境中指定:服務器

增長如 env.put("java.naming.ldap.attributes.binary","aaaa");//aa是你的binary字段名。ui

          Context cxt = new InitialLdapContext(env,null)編碼

 

 

另外:spa

 還有一個小問題,若是鏈接Ldap服務器的PROVIDER_URL中服務器與端口以外的路徑含有中文,則須要事先使用java.net.URLEncoder進行編碼,例如:.net

  1. String baseDN=URLEncoder.encode("ou=軟件應用事業部,ou=OrgTree,dc=cattsoft,dc=com""utf-8");  
  2. env.put(Context.PROVIDER_URL, "ldap://192.168.123.8:389/"+baseDN);  

 

參考:code

http://zuiyanwangyue.iteye.com/blog/911649blog

相關文章
相關標籤/搜索