Ldap和属性(LDAP)

时间:2013-11-22 21:13:25

标签: java ldap

您好我是开发人员,但对ldap编程很新。我能够通过提供DN = ou = app1,ou = development,ou = Group并将我的搜索级别设置为subtree_scope来获得我们的Ldap服务器,并且能够达到降低级别,这使我处于DN=cn=admin,DN=ou=app1,ou=development,ou=Group。通过展开此DN,我会看到Member(4)OU(1)cn(1)和对象类:topgroupOfNames。我正在尝试使用uid=user条目访问4个用户。我尝试访问uid时收到以下消息:

UID ... class javax.naming.directory.SearchResult

空 找到cn = Admin:

属性是..没有属性

以下是我的代码片段。如果需要,我可以提供更多

    controls.setReturningAttributes("uid");
    String filter="(objectClass=groupOfNames)"; 

        NamingEnumeration objs = ctx.search("",filter, controls); 


        while (objs.hasMoreElements())
                {

                SearchResult match = (SearchResult)objs.nextElement();

               System.out.println(" UID...\t"+ match.getClass());
               System.out.println(match.getClassName());
               System.out.println("Found "+match.getName()+":");
               System.out.println("Attributes are..\t"+match.getAttributes());


                Attributes attrs = match.getAttributes();
                NamingEnumeration e = attrs.getAll();


                while (e.hasMoreElements())
                {

                    Attribute attr = (Attribute) e.nextElement();
                   System.out.println("Attribute and its class..\t"+attr.getClass());


                }
                System.out.println("---------------------------------------");
            }
                }

1 个答案:

答案 0 :(得分:-1)

SearchControls定义搜索返回的属性。您必须将其'returningAttributes'属性设置为'new String [0]'。将其保留为null以获取所有属性,或指定所需属性。