`
zuiyanwangyue
  • 浏览: 164408 次
  • 性别: Icon_minigender_1
  • 来自: 河北
社区版块
存档分类
最新评论

JAVA LDAP操作微软活动目录返回字节数组属性值

阅读更多

    在Oracle关于JavaSE的官方文档中查到如下描述,LDAP服务提供者支持String和byte[]两种格式的LDAP属性。

    默认情况下Attribute#get()返回的属性值的格式都是字符串类型的,如果想指定某属性的格式为字节数组类型(比如某属性可能在活动目录中存储的是图片、Word等二进制文件,那么返回字节数组类型会特别合适),需要事先在查找的上下文环境中指定:

……
env.put("java.naming.ldap.attributes.binary","objectGUID");//objectGUID也可以指定为其它属性
Context cxt = new InitialLdapContext(env,null);
……

 

    参考网址:

LDAP Naming Service Provider for the Java Naming and Directory InterfaceTM (JNDI)

http://download.oracle.com/javase/1.3/docs/guide/jndi/jndi-ldap.html

 

How do you convert an Active Directory objectGUID into something useful?

http://www.thatsjava.com/java-core-apis/19440/

 

    还有一个小问题,如果连接Ldap服务器的PROVIDER_URL中服务器与端口之外的路径含有中文,则需要事先使用java.net.URLEncoder进行编码,例如:

String baseDN=URLEncoder.encode("ou=软件应用事业部,ou=OrgTree,dc=cattsoft,dc=com", "utf-8");
env.put(Context.PROVIDER_URL, "ldap://192.168.123.8:389/"+baseDN);
 
分享到:
评论
3 楼 gaoyuanyuan121 2014-02-26  
zuiyanwangyue 写道
各位在使用LDAP是有没有遇到这类问题啊 还望将此贴顶起

正好解决了我的问题~~
2 楼 xihuan&java 2011-09-02  
楼主使用LDAP获取属性值怎么解决中文乱码问题呀
1 楼 zuiyanwangyue 2011-02-21  
各位在使用LDAP是有没有遇到这类问题啊 还望将此贴顶起

相关推荐

Global site tag (gtag.js) - Google Analytics