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