Walt,

It looks like we need to do some encoding gymnastics because python-ldap
doesn't handle unicode strings nicely. Would you mind filing a bug about
this?

Thanks,
-David


On Wed, Feb 19, 2014 at 11:30 AM, Javins, Walt <walt.jav...@isilon.com>wrote:

>  Hi RB Community,
>
>
>
> I recently had a individual contributor report that he was unable to login
> to our instance of reviewboard, and the server was giving a 500 error.
> When I checked the logs, I saw the following traceback:
>
>
>
> 2014-01-30 15:02:12,208 - DEBUG -  - User un...@company.com is trying to
> log in via AD
>
> 2014-01-30 15:02:12,209 - ERROR -  - Exception thrown for user
> AnonymousUser at http://codereview.company.com/account/login/
>
>
>
> UnicodeEncodeError: 'ascii' codec can't encode character u'\xa3' in
> position 8: ordinal not in range(128)
>
> Traceback (most recent call last):
>
>   File
> "/usr/lib/python2.6/site-packages/Django-1.4.10-py2.6.egg/django/core/handlers/base.py",
> line 111, in get_response
>
>     response = callback(request, *callback_args, **callback_kwargs)
>
>   File
> "/usr/lib/python2.6/site-packages/Django-1.4.10-py2.6.egg/django/views/decorators/debug.py",
> line 75, in sensitive_post_parameters_wrapper
>
>     return view(request, *args, **kwargs)
>
>   File
> "/usr/lib/python2.6/site-packages/Django-1.4.10-py2.6.egg/django/utils/decorators.py",
> line 91, in _wrapped_view
>
>     response = view_func(request, *args, **kwargs)
>
>   File
> "/usr/lib/python2.6/site-packages/Django-1.4.10-py2.6.egg/django/views/decorators/cache.py",
> line 89, in _wrapped_view_func
>
>     response = view_func(request, *args, **kwargs)
>
>   File
> "/usr/lib/python2.6/site-packages/Django-1.4.10-py2.6.egg/django/contrib/auth/views.py",
> line 36, in login
>
>     if form.is_valid():
>
>   File
> "/usr/lib/python2.6/site-packages/Django-1.4.10-py2.6.egg/django/forms/forms.py",
> line 124, in is_valid
>
>     return self.is_bound and not bool(self.errors)
>
>   File
> "/usr/lib/python2.6/site-packages/Django-1.4.10-py2.6.egg/django/forms/forms.py",
> line 115, in _get_errors
>
>     self.full_clean()
>
>   File
> "/usr/lib/python2.6/site-packages/Django-1.4.10-py2.6.egg/django/forms/forms.py",
> line 271, in full_clean
>
>     self._clean_form()
>
>   File
> "/usr/lib/python2.6/site-packages/Django-1.4.10-py2.6.egg/django/forms/forms.py",
> line 299, in _clean_form
>
>     self.cleaned_data = self.clean()
>
>   File
> "/usr/lib/python2.6/site-packages/Django-1.4.10-py2.6.egg/django/contrib/auth/forms.py",
> line 167, in clean
>
>     password=password)
>
>   File
> "/usr/lib/python2.6/site-packages/Django-1.4.10-py2.6.egg/django/contrib/auth/__init__.py",
> line 45, in authenticate
>
>     user = backend.authenticate(**credentials)
>
>   File
> "/usr/lib/python2.6/site-packages/ReviewBoard-1.7.21-py2.6.egg/reviewboard/accounts/backends.py",
> line 539, in authenticate
>
>     con.simple_bind_s(bind_username, password)
>
>   File "/usr/lib64/python2.6/site-packages/ldap/ldapobject.py", line 206,
> in simple_bind_s
>
>     msgid = self.simple_bind(who,cred,serverctrls,clientctrls)
>
>   File "/usr/lib64/python2.6/site-packages/ldap/ldapobject.py", line 200,
> in simple_bind
>
>     return
> self._ldap_call(self._l.simple_bind,who,cred,EncodeControlTuples(serverctrls),EncodeControlTuples(clientctrls))
>
>   File "/usr/lib64/python2.6/site-packages/ldap/ldapobject.py", line 96,
> in _ldap_call
>
>     result = func(*args,**kwargs)
>
> UnicodeEncodeError: 'ascii' codec can't encode character u'\xa3' in
> position 8: ordinal not in range(128)
>
>
>
> Upon talking to the user, he said he does have a unicode character in his
> password (but not username).  Furthermore he reported that he hadn’t had
> trouble logging into any of the other numerous services that bind to  our
> AD via ldap (none of which are python/django).  This leads me to believe
> that somewhere in RB, django, or python’s ldap module there is some
> incorrect unicode handling of the password.
>
>
>
> Has anyone else encountered a similar issue?
>
>
>
> Does anyone have debugging tips that could help me track down exactly
> where in the source code the problem is?
>
>
>
> My inclination is to somehow attach pdb to django so that I can traverse
> this stack trace and see exactly where any Unicode handling does/doesn’t
> happen in relation to the password field.  That would help narrow down if
> the issue lies with Review Board or one of the upstreams that it consumes.
>
>
>
> Thanks for your time,
>
> Walt
>
>
>
>
>
> --
> Get the Review Board Power Pack at http://www.reviewboard.org/powerpack/
> ---
> Sign up for Review Board hosting at RBCommons: https://rbcommons.com/
> ---
> Happy user? Let us know at http://www.reviewboard.org/users/
> ---
> You received this message because you are subscribed to the Google Groups
> "reviewboard" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to reviewboard+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>

-- 
Get the Review Board Power Pack at http://www.reviewboard.org/powerpack/
---
Sign up for Review Board hosting at RBCommons: https://rbcommons.com/
---
Happy user? Let us know at http://www.reviewboard.org/users/
--- 
You received this message because you are subscribed to the Google Groups 
"reviewboard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to reviewboard+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to