UnicodeEncodeError when registering a user (captcha has non ascii characters)

Bug #624935 reported by Natalia Bidart
14
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Canonical SSO provider
Fix Released
Low
Michael Foord

Bug Description

When calling register_user with arguments:
email: '<email address hidden>'
password: <hidden>,
captcha_id: '03AHJ_VusM3_ilZGVZvQJsi6_fOqgFEYYnIlrWhTRY7gcdIxpEtn64Y_GZspYN09AxdLU5pTxA0XJWNasV8_IFY_fTin4g2EuJRSUOoiNm6YAg5dGAzFBXVFWgl8RK5gLc4Qbe4mPZgBljOLsE4BKnqh-ehVR261NQUg'
captcha_solution: 'psicológica ifferes'

I'm getting this trace:

Traceback (most recent call last):
  File "/home/nessita/canonical/ubuntu-sso-client/better-errors/ubuntu_sso/main.py", line 319, in _in_thread
    result_cb(app_name, f())
  File "/home/nessita/canonical/ubuntu-sso-client/better-errors/ubuntu_sso/main.py", line 380, in f
    captcha_id, captcha_solution)
  File "/home/nessita/canonical/ubuntu-sso-client/better-errors/ubuntu_sso/main.py", line 209, in register_user
    captcha_solution=captcha_solution)
  File "/usr/lib/python2.6/dist-packages/lazr/restfulclient/resource.py", line 528, in __call__
    url, in_representation, http_method, extra_headers=extra_headers)
  File "/usr/lib/python2.6/dist-packages/lazr/restfulclient/_browser.py", line 277, in _request
    raise HTTPError(response, content)
HTTPError: HTTP Error 500: Internal Server Error
Response headers:
---
connection: close
content-length: 2440
content-type: text/plain
date: Thu, 26 Aug 2010 20:46:00 GMT
server: Apache/2.2.14 (Ubuntu)
status: 500
vary: Accept-Encoding
via: 1.1 login.ubuntu.com
x-powered-by: Zope (www.zope.org), Python (www.python.org)
---
Response body:
---
'ascii' codec can't encode character u'\xf3' in position 6: ordinal not in range(128)

Traceback (most recent call last):
  File "/usr/lib/python2.6/dist-packages/zope/publisher/publish.py", line 134, in publish
    result = publication.callObject(request, obj)
  File "/usr/lib/python2.6/dist-packages/lazr/restful/publisher.py", line 170, in callObject
    WebServicePublicationMixin, self).callObject(request, object)
  File "/usr/lib/python2.6/dist-packages/lazr/restful/simple.py", line 106, in callObject
    return mapply(ob, request.getPositionalArguments(), request)
  File "/usr/lib/python2.6/dist-packages/zope/publisher/publish.py", line 109, in mapply
    return debug_call(obj, args)
  File "/usr/lib/python2.6/dist-packages/zope/publisher/publish.py", line 115, in debug_call
    return obj(*args)
  File "/usr/lib/python2.6/dist-packages/lazr/restful/_resource.py", line 839, in __call__
    result = self.do_POST()
  File "/usr/lib/python2.6/dist-packages/lazr/restful/_resource.py", line 708, in do_POST
    return self.handleCustomPOST(operation_name)
  File "/usr/lib/python2.6/dist-packages/lazr/restful/_resource.py", line 692, in handleCustomPOST
    return operation()
  File "/usr/lib/python2.6/dist-packages/lazr/restful/_operation.py", line 59, in __call__
    response = self.call(**values)
  File "/usr/lib/python2.6/dist-packages/lazr/restful/declarations.py", line 1115, in call
    result = getattr(self.context, self._method_name)(**params)
  File "/usr/lib/python2.6/dist-packages/identityprovider/webservice/models.py", line 209, in register
    if not form.is_valid():
  File "/usr/lib/pymodules/python2.6/django/forms/forms.py", line 120, in is_valid
    return self.is_bound and not bool(self.errors)
  File "/usr/lib/pymodules/python2.6/django/forms/forms.py", line 111, in _get_errors
    self.full_clean()
  File "/usr/lib/pymodules/python2.6/django/forms/forms.py", line 250, in full_clean
    self.cleaned_data = self.clean()
  File "/usr/lib/python2.6/dist-packages/identityprovider/webservice/forms.py", line 42, in clean
    if not captcha.verify(captcha_solution):
  File "/usr/lib/python2.6/dist-packages/identityprovider/models/captcha.py", line 157, in verify
    'response': captcha_solution,
  File "/usr/lib/python2.6/urllib.py", line 1267, in urlencode
    v = quote_plus(str(v))
UnicodeEncodeError: 'ascii' codec can't encode character u'\xf3' in position 6: ordinal not in range(128)

---

Related branches

Changed in canonical-identity-provider:
status: New → Confirmed
Changed in canonical-identity-provider:
milestone: none → 2.9.0
Julien Funk (jaboing)
Changed in canonical-isd-qa:
milestone: none → canonical-identity-provider+2.9.0
David Owen (dsowen)
Changed in canonical-identity-provider:
milestone: 2.9.0 → 1-commitment
Changed in canonical-identity-provider:
importance: Undecided → High
Changed in canonical-identity-provider:
milestone: 1-commitment → for-10.04
importance: High → Critical
Changed in canonical-identity-provider:
milestone: for-10.10 → 1-commitment
importance: Critical → Low
Michael Foord (mfoord)
Changed in canonical-identity-provider:
assignee: nobody → Michael Foord (mfoord)
Michael Foord (mfoord)
Changed in canonical-identity-provider:
status: Confirmed → Fix Committed
Changed in canonical-identity-provider:
milestone: 1-commitment → 5-production
Changed in canonical-identity-provider:
status: Fix Committed → Fix Released
Changed in canonical-identity-provider:
milestone: 5-production → 2.9.0
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.