Issue #576 has been updated by Chris Ridd.

I think I've found the cause for this.

The Apache SDK has an LdapApiService singleton object, which in the 
org.apache.directory.api.ldap.codec.standalone.StandaloneLdapApiService 
implementation, seems to default to not having any control factories registered 
with it. As a consequence, the PersistentSearchImpl control that gets passed to 
the LDAP encoder is decorated with a "BasicControlDecorator" that doesn't know 
about the control value and which won't encode it.

The fix is to register the factories of any controls that you want to use. 
Perhaps this should be the default? I suspect there's a similar issue with 
extended operations.

To register you need to set the "default.controls" system property to a 
comma-separated list of factory class names, e.g. 
"org.apache.directory.api.ldap.codec.controls.search.persistentSearch.PersistentSearchFactory".
----------------------------------------
Bug #576: Persistent searches send a control with absent value
http://tools.lsc-project.org/issues/576

Author: Chris Ridd
Status: Assigned
Priority: Normal
Assigned to: Raphaƫl Ouazana
Category: Core
Target version: 2.0.2
Problem in version: 


Wireshark shows the control is encoded with a controlType, a criticality of 
true, but the controlValue is completely absent.

OpenDJ rejects this control. The psearch draft 
http://tools.ietf.org/id/draft-ietf-ldapext-psearch-03.txt does not indicate 
the value is optional, and does not describe what to do if the value is absent.

Wireshark PDML snippet:

     <field name="ldap.controls" showname="controls: 1 item" size="30" 
pos="144" show="1" 
value="301c0417322e31362e3834302e312e3131333733302e332e342e330101ff">
        <field name="ldap.Control" showname="Control" size="30" pos="144" 
show="" value="">
          <field name="ldap.controlType" showname="controlType: 
2.16.840.1.113730.3.4.3 (joint-iso-itu-t.16.840.1.113730.3.4.3)" size="23" 
pos="148" show="2.16.840.1.113730.3.4.3" 
value="322e31362e3834302e312e3131333733302e332e342e33"/>
          <field name="ldap.criticality" showname="criticality: True" size="1" 
pos="173" show="1" value="ff"/>
        </field>
      </field>



-- 
You have received this notification because you have either subscribed to it, 
or are involved in it.
To change your notification preferences, please click here: 
http://tools.lsc-project.org/my/account
_______________________________________________________________
Ldap Synchronization Connector (LSC) - http://lsc-project.org

lsc-dev mailing list
[email protected]
http://lists.lsc-project.org/listinfo/lsc-dev

Reply via email to