出于某种原因,我的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的体验非常有限)
谢谢: - )
答案 0 :(得分:5)
为什么LDAP搜索不会返回您知道的属性,有两种基本的可能性:
您无权查看它们(检查访问控制信息,或绑定为 一个更有特权的用户)
它们被定义为未返回的“可操作”(内部)属性 默认,但如果您按名称要求(通过使用版本)将出现 getAttributes()获取一组属性名称。
答案 1 :(得分:0)
碰到了这个:
“oracle不公开所需的 通过OID LDAP的属性 接口“。
http://blog.mikesidoti.com/2007/05/how-to-query-oid-to-find-expired.html
答案 2 :(得分:0)
根据documentation,pwdaccountlockedtime绝对是一个操作属性。
查询底层数据库(如链接中)应该是最后的选择。