3528: UnicodeDecodeError while LDAP-authenticating

egil*****@gmai***** (Google Code) (Is this you? Claim this profile.)
Dec. 18, 2014
What version are you running?

ReviewBoard 2.0.5

What's the URL of the page containing the problem?

/account/login/

What steps will reproduce the problem?
1. Set up new RB using LDAP-authentication, using "Full Name Attribute" = "displayName".
2. Try to log in for the first time as a user with "displayName" containing, for example, "ö" (0xC3 0xB6)
3. Log in fails.

What is the expected output? What do you see instead?

Expected successful login.

Seeing (in Apache error.log): 
An error while LDAP-authenticating: UnicodeDecodeError('ascii', 'Tobias
Emitsl\\xc3\\xb6f', 13, 14, 'ordinal not in range(128)')

What operating system are you using? What browser?

Server: Debian GNU/Linux (wheezy), Apache Prefork, mod_wsgi, python2.7.
Client/Browser: Windows 7, Chrome
#1 ma***@smil**** (Google Code) (Is this you? Claim this profile.)
After suffering a similar problem, I found out that this bug is due to the split function in line 467 in reviewboard/accounts/backends.py (as of 2.0.11)
It turns out split() doesnt work on raw strings when unicode_literals is used.

The attached patch would solve your problem in a quick-and-dirty fashion, I also discovered that using "Given name" and "Surname" attributes instead of the "Full name" one not only does the same thing, but does not trigger the bug. I would recommend doing that if you have those attributes in your LDAP
david
#2 david
Fixed in release-2.0.x (c691ebc). Thanks!
  • +Fixed