oracle ldap search似乎没有返回某些属性

时间:2010-02-18 12:53:08

标签: java oracle ldap

出于某种原因,我的LDAP搜索似乎没有返回给定DN可用的所有属性。

使用下拉代码:

DirContext ctx = new InitialDirContext(mEnv);
DirContext obj = (DirContext)ctx.lookup(dn);
Attributes attrs = obj.getAttributes(new CompositeName(""));

(其中mEnv是有效的Properties类,dn是有效的DN)

我只返回7个属性(“cn”,“orclpassword”,“objectclass”,“mail”,“authpassword; orclcommonpwd”,“userpassword”,“sn”),而我可以在Oracle Directory中看到经理还有更多(包括“orclIsEnabled”和“pwdaccountlockedtime”)

是否有人能够对“缺失”属性有所了解。

(注意:我对LDAP的体验非常有限)

谢谢: - )

3 个答案:

答案 0 :(得分:5)

为什么LDAP搜索不会返回您知道的属性,有两种基本的可能性:

  1. 您无权查看它们(检查访问控制信息,或绑定为 一个更有特权的用户)

  2. 它们被定义为未返回的“可操作”(内部)属性 默认,但如果您按名称要求(通过使用版本)将出现 getAttributes()获取一组属性名称。

答案 1 :(得分:0)

碰到了这个:

  

“oracle不公开所需的   通过OID LDAP的属性   接口“。

http://blog.mikesidoti.com/2007/05/how-to-query-oid-to-find-expired.html

答案 2 :(得分:0)

根据documentation,pwdaccountlockedtime绝对是一个操作属性。

查询底层数据库(如链接中)应该是最后的选择。