论坛首页 Java企业应用论坛

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

浏览 2467 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-02-21   最后修改:2011-02-23

    在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);
 
   发表时间:2011-02-21  
各位在使用LDAP是有没有遇到这类问题啊 还望将此贴顶起
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics