[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: Aliasing entries with reserved characters



Am 16.02.2011 10:16, schrieb Pierangelo Masarati:
> Christian Manal wrote:
>> Am 15.02.2011 08:04, schrieb MJ Hughes:
>>> Hi,
>>>
>>>
>>> I'm an LDAP newbie who has inherited the maintenance of an LDAP
>>> system, and
>>> am learning on the fly.  Until now I've been able to puzzle out all the
>>> issues I've faced, but finally my google fu has failed me, so I'm
>>> seeking
>>> more human assistance.
>>>
>>>
>>> My problem is with reserved characters, such as , (comma).  The system
>>> wasn't coping with RDNs that contained these characters, but this was
>>> easy
>>> enough to fix by simply escaping these characters with a backslash.
>>>
>>>
>>> My problem now involves trying to alias entries that contain these
>>> escaped
>>> characters - I am consistently getting "Invalid DN syntax".  This is
>>> what
>>> the code to add the alias looks like:
>>>
>>>
>>>
>>> $operationDN = "aliasedObjectName=" . $this->aliasSafe($aliasDN) . "," .
>>> $locDN;
>>>
>>> $aliasParameterArray = array(
>>>
>>> "objectClass" => "alias",
>>>
>>> "aliasedObjectName" => $aliasDN
>>>
>>> );
>>>
>>> $result = ldap_add($this->LDAPcon, $operationDN, $aliasParameterArray);
>>>
>>>
>>>
>>> The aliasSafe() function converts "=" => "\3D" and "," => "\,"
>>> (unless the
>>> commas have already been escaped).
>>>
>>>
>>> This produces DNs that have the following (hypothetical) format:
>>>
>>>
>>>
>>> $aliasDN: cn=Tomorrow\, When The War Began,cn=books,dc=library,dc=com
>>>
>>>
>>> $operationDN: cn\3DTomorrow\, When The War
>>> Began\,cn\3Dbooks\,dc\3Dlibrary\,dc\3Dcom,cn=titles,cn=John
>>> Marsden,cn=authors,dc=library,dc=com
>>>
>>>
>>>
>>> I've tried every encoding of the comma (in the book name) that I can
>>> think
>>> of (eg, a single backslash, a double backslash, a triple backslash,
>>> and even
>>> '\2C') but everything I've tried so far has given me the "Invalid DN
>>> syntax"
>>> error.  Could someone please help me with the syntax and encoding
>>> these DNs
>>> should have?
>>>
>>>
>>> Thanks,
>>>
>>> MJ
>>>
>>
>>
>> Hi,
>>
>> have a look at RFC 1485 section 2.2:
>>
>>    <http://www.faqs.org/rfcs/rfc1485.html>
>>
>> Double quotes around the RDN will solve your problem.
> 
> From <http://www.rfc-editor.org/>:
> 
> Number     More Info (Obs&Upd)         Status
> RFC1485    Obsoleted by RFC1779, RFC3494      HISTORIC
> 
> then there is a long list of obsolescence up to RFC4510, RFC4514 which
> are the current specs for DN representation; I note that RFC4514 does no
> longer mention quoting as allowed.  The fact that OpenLDAP accepts it is
> a matter of being friendly to obsolete, istoric clients.  Perpetuating
> that behavior is a Bad Thing.  The problem lies somewhere else, I
> suspect in some inconsistent escaping handling of the language used.
> 
> p.
> 

Thanks for the info. My two minute google research after MJ's second
mail didn't come up with that.


Regards,
Christian Manal