directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sathyanarayan, Harish" <Harish.Sathyanara...@virtustream.com>
Subject RE: EntryFilteringCursor question
Date Wed, 06 Sep 2017 15:53:56 GMT
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' <dev@directory.apache.org>
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:elecharny@gmail.com] 
Sent: Friday, September 01, 2017 5:36 PM
To: dev@directory.apache.org
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.
Mime
View raw message