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

相关文章
相关标签/搜索