Ok, resolved this issue by extending entrycursorImpl and making other changes.
My next question is: Why is my delete interceptor not getting invoked when I proxy the delete request to external ldap. It does lookups multiple times but the DN I am trying to delete(this is in third party LDAP) is not recognized as a valid DN internally(obviously) and throws error. I need that to be bypassed and accept this as a valid DN. Thoughts? -----Original Message----- From: Sathyanarayan, Harish Sent: Friday, September 01, 2017 6:00 PM To: 'Apache Directory Developers List' <[email protected]> Subject: RE: EntryFilteringCursor question Client Code, test client with main method: if (args[0].equalsIgnoreCase("SEARCH")) { testTenantCrudsMain.testSearchEntry("uid=exampleuser,ou=users,ou=example,o=vsc"); } void testSearchEntry(String searchDn) throws LdapException { LdapConnection connection = getConnection(connector); try { EntryCursor entryCursor = connection.search(searchDn, "(objectclass=*)", SearchScope.SUBTREE, "*"); while (entryCursor.next()){ System.out.println("entry is "+ entryCursor.get()); } Server code Snippet: EntryCursor cursor = connector.searchThirdPartyLdap(distinguishedName); Entry entry = cursor.get(); Log.info(entry); // valid entry Return new EntryFilteringCursorImpl( new SingletonCursor<Entry>( entry), searchContext, service.getSchemaManager() ); I believe the above should work, correct? Stacktrace/console output 17:57:49.805 [NioProcessor-2] DEBUG org.apache.directory.ldap.client.api.LdapNetworkConnection - -------> MessageType : SEARCH_RESULT_DONE Message ID : 3 Search Result Done Ldap Result Result code : (OTHER) other Matched Dn : '' Diagnostic message : 'OTHER: failed for MessageType : SEARCH_REQUEST Message ID : 3 SearchRequest baseDn : ' uid=exampleuser,ou=users,ou=example,o=vsc ' filter : '(objectClass=*)' scope : whole subtree typesOnly : false Size Limit : no limit Time Limit : no limit Deref Aliases : deref Always attributes : '*' org.apache.directory.api.ldap.model.message.SearchRequestImpl@75502e41: null' Message received <------- 17:57:49.805 [NioProcessor-2] DEBUG org.apache.directory.ldap.client.api.LdapNetworkConnection - Getting <3, org.apache.directory.ldap.client.api.future.SearchFuture> 17:57:49.805 [NioProcessor-2] DEBUG org.apache.directory.ldap.client.api.LdapNetworkConnection - Search failed : MessageType : SEARCH_RESULT_DONE Message ID : 3 Search Result Done Ldap Result Result code : (OTHER) other Matched Dn : '' Diagnostic message : 'OTHER: failed for MessageType : SEARCH_REQUEST Message ID : 3 SearchRequest baseDn : ' uid=exampleuser,ou=users,ou=example,o=vsc" filter : '(objectClass=*)' scope : whole subtree typesOnly : false Size Limit : no limit Time Limit : no limit Deref Aliases : deref Always attributes : '*' org.apache.directory.api.ldap.model.message.SearchRequestImpl@75502e41: null' 17:57:49.805 [NioProcessor-2] DEBUG org.apache.directory.ldap.client.api.LdapNetworkConnection - Removing <3, org.apache.directory.ldap.client.api.future.SearchFuture> 17:57:49.806 [NioProcessor-2] DEBUG org.apache.directory.ldap.client.api.LdapNetworkConnection - received a NoD, closing everything -----Original Message----- From: Emmanuel Lécharny [mailto:[email protected]] Sent: Friday, September 01, 2017 5:36 PM To: [email protected] Subject: Re: EntryFilteringCursor question Le 01/09/2017 à 22:37, Sathyanarayan, Harish a écrit : > Server code I have: > > EntryFilteringCursor entryFilteringCursor = new EntryFilteringCursorImpl( > new SingletonCursor<Entry>( returnedEntry ), > null, null ); > > return entryFilteringCursor; > > Client Code: > > EntryCursor ec = connection.search(searchDn, "(objectclass=*)", > SearchScope.SUBTREE); > > So where do I need to fix? First, you should always pass the SearchOperationContext to your EntryFilteringCursorImplinstance. If you pass null, you'll get soem NPE all over your call. That being said, I don't see the connection between your server implem and your client impl. I don't know where your client codeegt called. Also provide a stack trace of the error you get. -- Emmanuel Lecharny Symas.com directory.apache.org The information contained in this electronic mail transmission may be privileged and confidential, and therefore, protected from disclosure. If you have received this communication in error, please notify us immediately by replying to this message and deleting the email and its attachments from all computers without copying or disclosing it.
