Looks like OpenLDAP accepts a search filter like "(cn=Doe, John)". It also accepts "(cn=Doe\\2c\\20John)"
I also tried this with an active directory server and it didn't have a problem with the escaped or unescaped filter:
$ ldapsearch -LLL -s one -b "cn=Users,dc=cfs1,dc=us" "(cn=Doe, John)" cn dn: CN=Doe\, John,CN=Users,DC=cfs1,DC=us cn: Doe, John
$ ldapsearch -LLL -s one -b "cn=Users,dc=cfs1,dc=us" "(cn=Doe\\2c\\20John)" cn dn: CN=Doe\, John,CN=Users,DC=cfs1,DC=us cn: Doe, John
Maybe there's different versions of AD that accept a ',' in the filter or not.
It actually looks like the error is coming from the python-ldap library and not from the server.
Looks like OpenLDAP accepts a search filter like "(cn=Doe, John)". It also accepts "(cn=Doe\ \2c\\20John) "
I also tried this with an active directory server and it didn't have a problem with the escaped or unescaped filter:
$ ldapsearch -LLL -s one -b "cn=Users, dc=cfs1, dc=us" "(cn=Doe, John)" cn Users,DC= cfs1,DC= us
dn: CN=Doe\, John,CN=
cn: Doe, John
$ ldapsearch -LLL -s one -b "cn=Users, dc=cfs1, dc=us" "(cn=Doe\ \2c\\20John) " cn Users,DC= cfs1,DC= us
dn: CN=Doe\, John,CN=
cn: Doe, John
Maybe there's different versions of AD that accept a ',' in the filter or not.
It actually looks like the error is coming from the python-ldap library and not from the server.