Bug 1086505

Summary: non-ASCII characters in usernames cause LDAP-related UnicodeEncodeError
Product: [Retired] Beaker Reporter: xjia <xjia>
Component: web UIAssignee: Dan Callaghan <dcallagh>
Status: CLOSED CURRENTRELEASE QA Contact: tools-bugs <tools-bugs>
Severity: low Docs Contact:
Priority: low    
Version: 0.16CC: aigao, asaha, dcallagh, luliu, rmancy, xtian
Target Milestone: 0.17   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-06-10 23:28:11 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

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.