Bug 1086505 - non-ASCII characters in usernames cause LDAP-related UnicodeEncodeError
Summary: non-ASCII characters in usernames cause LDAP-related UnicodeEncodeError
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Beaker
Classification: Retired
Component: web UI
Version: 0.16
Hardware: Unspecified
OS: Unspecified
low
low
Target Milestone: 0.17
Assignee: Dan Callaghan
QA Contact: tools-bugs
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2014-04-11 03:26 UTC by xjia
Modified: 2018-02-06 00:41 UTC (History)
6 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2014-06-10 23:28:11 UTC
Embargoed:


Attachments (Terms of Use)

Description xjia 2014-04-11 03:26:54 UTC
Description of problem:
Please check these situations(communicating with ldap or database directly), which cause ISE 500:
1.When adding new account, input Chinese user name/display name
2.When adding new account for one group,input Chinese user name
3.When adding new delegate user, input Chinese user name
4.When advanced searching, input Chinese character for Key Value options.

Version-Release number of selected component (if applicable):


How reproducible:
100%

Steps to Reproduce:
1.input Chinese character, like "贾"
2.
3.

Actual results:
ISE500

Expected results:
Works well.

Additional info:
Apr 11 03:19:45 beaker-devel beaker-server[19026]: cherrypy.msg INFO HTTP: Page handler: <bound method Users.by_name of <bkr.server.user.Users object at 0x7fa1df60da10>>
Apr 11 03:19:45 beaker-devel beaker-server[19026]:  Traceback (most recent call last):
Apr 11 03:19:45 beaker-devel beaker-server[19026]:    File "/usr/lib/python2.6/site-packages/CherryPy-2.3.0-py2.6.egg/cherrypy/_cphttptools.py", line 121, in _run
Apr 11 03:19:45 beaker-devel beaker-server[19026]:      self.main()
Apr 11 03:19:45 beaker-devel beaker-server[19026]:    File "/usr/lib/python2.6/site-packages/CherryPy-2.3.0-py2.6.egg/cherrypy/_cphttptools.py", line 264, in main
Apr 11 03:19:45 beaker-devel beaker-server[19026]:      body = page_handler(*virtual_path, **self.params)
Apr 11 03:19:45 beaker-devel beaker-server[19026]:    File "<string>", line 3, in by_name
Apr 11 03:19:45 beaker-devel beaker-server[19026]:    File "/usr/lib/python2.6/site-packages/turbogears/controllers.py", line 361, in expose
Apr 11 03:19:45 beaker-devel beaker-server[19026]:      *args, **kw)
Apr 11 03:19:45 beaker-devel beaker-server[19026]:    File "/usr/lib/python2.6/site-packages/bkr/server/wsgi.py", line 59, in run_with_transaction_noop
Apr 11 03:19:45 beaker-devel beaker-server[19026]:      return func(*args, **kwargs)
Apr 11 03:19:45 beaker-devel beaker-server[19026]:    File "<generated code>", line 0, in _expose
Apr 11 03:19:45 beaker-devel beaker-server[19026]:    File "/usr/lib/python2.6/site-packages/peak/rules/core.py", line 153, in __call__
Apr 11 03:19:45 beaker-devel beaker-server[19026]:      return self.body(*args, **kw)
Apr 11 03:19:45 beaker-devel beaker-server[19026]:    File "/usr/lib/python2.6/site-packages/turbogears/controllers.py", line 255, in <lambda>
Apr 11 03:19:45 beaker-devel beaker-server[19026]:      False, {}, args, kw))
Apr 11 03:19:45 beaker-devel beaker-server[19026]:    File "/usr/lib/python2.6/site-packages/turbogears/controllers.py", line 425, in _execute_func
Apr 11 03:19:45 beaker-devel beaker-server[19026]:      output = errorhandling.try_call(func, *args, **kw)
Apr 11 03:19:45 beaker-devel beaker-server[19026]:    File "/usr/lib/python2.6/site-packages/turbogears/errorhandling.py", line 77, in try_call
Apr 11 03:19:45 beaker-devel beaker-server[19026]:      return func(self, *args, **kw)
Apr 11 03:19:45 beaker-devel beaker-server[19026]:    File "/usr/lib/python2.6/site-packages/bkr/server/user.py", line 257, in by_name
Apr 11 03:19:45 beaker-devel beaker-server[19026]:      in User.list_by_name(input, anywhere, ldap)]
Apr 11 03:19:45 beaker-devel beaker-server[19026]:    File "/usr/lib/python2.6/site-packages/bkr/server/model/identity.py", line 195, in list_by_name
Apr 11 03:19:45 beaker-devel beaker-server[19026]:      timeout=get('identity.soldapprovider.timeout', 20))
Apr 11 03:19:45 beaker-devel beaker-server[19026]:    File "/usr/lib64/python2.6/site-packages/ldap/ldapobject.py", line 519, in search_st
Apr 11 03:19:45 beaker-devel beaker-server[19026]:      return self.search_ext_s(base,scope,filterstr,attrlist,attrsonly,None,None,timeout)
Apr 11 03:19:45 beaker-devel beaker-server[19026]:    File "/usr/lib64/python2.6/site-packages/ldap/ldapobject.py", line 509, in search_ext_s
Apr 11 03:19:45 beaker-devel beaker-server[19026]:      msgid = self.search_ext(base,scope,filterstr,attrlist,attrsonly,serverctrls,clientctrls,timeout,sizelimit)
Apr 11 03:19:45 beaker-devel beaker-server[19026]:    File "/usr/lib64/python2.6/site-packages/ldap/ldapobject.py", line 505, in search_ext
Apr 11 03:19:45 beaker-devel beaker-server[19026]:      timeout,sizelimit,
Apr 11 03:19:45 beaker-devel beaker-server[19026]:    File "/usr/lib64/python2.6/site-packages/ldap/ldapobject.py", line 96, in _ldap_call
Apr 11 03:19:45 beaker-devel beaker-server[19026]:      result = func(*args,**kwargs)
Apr 11 03:19:45 beaker-devel beaker-server[19026]:  UnicodeEncodeError: 'ascii' codec can't encode character u'\u5bb6' in position 5: ordinal not in range(128)
Apr 11 03:19:45 beaker-devel beaker-server[19026]: bkr.server.wsgi DEBUG Rolling back for 500 response

Comment 2 Dan Callaghan 2014-05-06 01:48:54 UTC
On Gerrit: http://gerrit.beaker-project.org/3062

Comment 5 Dan Callaghan 2014-06-02 04:39:59 UTC
This bug fix has been applied to the release-0.16 branch, however we have elected not to do another maintenance release of the 0.16.x series. This fix will be included in 0.17.0 instead.

Comment 6 Dan Callaghan 2014-06-10 23:28:11 UTC
Beaker 0.17.0 has been released.


Note You need to log in before you can comment on or make changes to this bug.