Full_Name: Pavel Kislinger
Version: 2.4.8
OS: Freebsd 6.3 Stable
URL:
ftp://ftp.openldap.org/incoming/
Submission from: (NULL) (147.229.202.76)
I am using this packages:
openldap-server-2.4.8_1
openldap-client-2.4.8
mysql-client-5.0.51a
unixODBC-2.2.12_4
mysql-connector-odbc-unixodbc-mysql50-3.51.12_1
I have records with diacritics (czech language) like name or surname in SQL.
+-------+---------------+-----------+
| vutid | name | surname |
+-------+---------------+-----------+
| 1 | Pavel | Kislinger |
| 2 | Michhěčřýíé | abáček |
+-------+---------------+-----------+
First record in SQL correspond to record in LDAP. Second record with diacritics
doesn't works.
# 1, users, test.vutbr.cz
dn: uid=1,ou=users,dc=test,dc=vutbr,dc=cz
objectClass: usi
cn: Pavel Kislinger
sn: Kislinger
givenName: Pavel
uid: 1
Solution of this problem is base64 encoding of attributes.
"cn" for second record "Michhěčřýíé
abáček" could be:
cn:: eHhNaWNoaOy56Pi+/e3pYWx4eCBLaXNsaW5nZXI=
I wrote MySQL function base64_encoding and adjusted table ldap_attr_mapping for
"cn":
insert into ldap_attr_mappings (<list of columns>) values
(114,3,'cn',"base64_encode(concat(users.name,'
',users.surname))",'users',NULL,NULL,NULL,3,0);
the result in ldap is:
cn: eHhNaWNoaOy56Pi+/e3pYWx4eCBLaXNsaW5nZXI=
This value is false recognized by ldap clients (outlook, thunderbird) as string
"eHhN..." instead of "Michhěčřýíé
abáček"
How can I mark "cn" attribute in SQL, that this attribute is encoded by base64?