From 7f00264e325045654eb8c0970d7f467609ced8c8 Mon Sep 17 00:00:00 2001 From: kakwa Date: Sun, 31 Jul 2016 12:21:26 +0200 Subject: [PATCH] improve robustness if user dn attribute contains something like ,cn= --- ldapcherry/backend/backendLdap.py | 4 +++- tests/test_BackendLdap.py | 6 +++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/ldapcherry/backend/backendLdap.py b/ldapcherry/backend/backendLdap.py index 703dda1..50fd8c6 100644 --- a/ldapcherry/backend/backendLdap.py +++ b/ldapcherry/backend/backendLdap.py @@ -311,7 +311,9 @@ class Backend(ldapcherry.backend.Backend): dn = \ self._str(self.dn_user_attr) + \ '=' + \ - self._str(attrs[self.dn_user_attr]) + \ + ldap.dn.escape_dn_chars( + self._str(attrs[self.dn_user_attr]) + ) + \ ',' + \ self._str(self.userdn) # gen the ldif fir add_s and add the user diff --git a/tests/test_BackendLdap.py b/tests/test_BackendLdap.py index 32adfeb..1a76284 100644 --- a/tests/test_BackendLdap.py +++ b/tests/test_BackendLdap.py @@ -172,12 +172,12 @@ class TestError(object): def testAddUser(self): try: - inv.del_user(u'test☭') + inv.del_user(u'test☭,cn=') except: pass inv = Backend(cfg, cherrypy.log, 'ldap', attr, 'uid') user = { - 'uid': u'test☭', + 'uid': u'test☭,cn=', 'sn': u'test☭', 'cn': u'test☭', 'userPassword': u'test☭', @@ -186,7 +186,7 @@ class TestError(object): 'homeDirectory': '/home/test/' } inv.add_user(user) - inv.del_user(u'test☭') + inv.del_user(u'test☭,cn=') def testModifyUser(self): inv = Backend(cfg, cherrypy.log, 'ldap', attr, 'uid')