Java Ldap和属性(Ldap)

Java Ldap和属性(Ldap),java,ldap,Java,Ldap,您好,我是一名开发人员,但不熟悉ldap编程。我能够通过提供DN=ou=app1、ou=development、ou=Group来访问我们的Ldap服务器,并将搜索级别设置为subtree\u scope,并且能够到达下面的级别,这将我置于DN=cn=admin、DN=ou=app1、ou=development、ou=Group。通过扩展这个DN,我看到了Member4、OU1、cn1和ObjectClass:top和groupOfNames。我正在尝试使用uid=用户条目访问4个用户。我尝试

您好,我是一名开发人员,但不熟悉ldap编程。我能够通过提供DN=ou=app1、ou=development、ou=Group来访问我们的Ldap服务器,并将搜索级别设置为subtree\u scope,并且能够到达下面的级别,这将我置于DN=cn=admin、DN=ou=app1、ou=development、ou=Group。通过扩展这个DN,我看到了Member4、OU1、cn1和ObjectClass:top和groupOfNames。我正在尝试使用uid=用户条目访问4个用户。我尝试访问uid时收到以下消息:

UID。。。类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("---------------------------------------");
            }
                }

SearchControl定义搜索返回的属性。您必须已将其“ReturningAttribute”属性设置为“新字符串[0]”。将其保留为null以获取所有属性,或指定所需的属性。

我不理解该错误。请提供完整的堆栈跟踪。@EJP I要求OP提供更多代码。attributesToReturn=null;//回来all@Prince不,你没有。您要求他提供一个不存在的堆栈跟踪。就在上面,黑白相间。如果他指定attributesToReturn为null,那么它就可以工作了。因此,他没有。仅供参考:他将returningAttributes属性设置为uid,而不是新字符串[0]code@ljgw不可能的该方法采用数组,而不是字符串。他不可能在运行那个代码。好奇。。。我想我必须阅读我在帖子中看到的代码,可能是String[]attrs=newstring[1];attrs[0]=uid;控件。设置返回属性属性属性@当然是ljgw,但那不是他贴的。如果是这样的话,那就行了。因此,情况并非如此。groupOfNames不允许使用“uid”。出于好奇,提问者条目中是否有允许“uid”的aux类。。。否则,为什么要请求该属性?