Hi everybody!
We are observing a strange behaviour of the LDAP server in Domino 6.
All we want to do is to perform a search operation
in Java. Following the source code:
package ldapdominotest;
import java.util.*;
import javax.naming.Context;
import javax.naming.directory.InitialDirContext;
import javax.naming.directory.*;
import javax.naming.directory.SearchControls;
import javax.naming.*;
import javax.naming.ldap.InitialLdapContext;
import com.sun.jndi.ldap.ctl.PagedResultsControl;
import com.sun.jndi.ldap.ctl.PagedResultsResponseControl;
public class Test {
public static void main(String args) throws Exception {
final Hashtable env = new Hashtable();
final String FILTER = "(objectclass=*)";
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "ldap://172.17.1.24:389");
// env.put(Context.SECURITY_AUTHENTICATION, “simple”);
// env.put(Context.SECURITY_PRINCIPAL, )
PagedResultsControl c = new PagedResultsControl(2);
final InitialLdapContext ctx = new InitialLdapContext(env, new PagedResultsControl[]{c});
// final InitialLdapContext ctx = new InitialLdapContext(env, null);
/*
((InitialLdapContext)con).setRequestControls(new Control[] {
c
});*/
final SearchControls ctrls = new SearchControls();
ctrls.setSearchScope(SearchControls.SUBTREE_SCOPE);
NamingEnumeration results = ctx.search("O=DOLS", FILTER, ctrls);
while ( results != null && results.hasMore() ) {
final SearchResult res = (SearchResult) results.next();
final String dn = res.getName();
System.out.println("dn=" + dn);
final Attributes attrs = res.getAttributes();
for ( NamingEnumeration enum = attrs.getAll(); enum.hasMoreElements(); ) {
final Attribute attr = (Attribute) enum.next();
final String attrID = attr.getID();
System.out.println("attrID: " + attrID);
for ( Enumeration enum1 = attr.getAll(); enum1.hasMoreElements(); ) {
System.out.println("\t " + enum1.nextElement());
}
}
System.out.println("\n");
}
System.out.println("OK");
}
}
Running this application yields a javax.naming.OperationNotSupportedException.
Removing the PagedResultsControl from the search request removes the exception.
Now our question: Is it possible that Domino 6 doesn’t support RFC 2696. In other words: Is it true that Domino 6 doesn’t support the PagedResultsControl? We know that Domino 5 supports it.
Any ideas?