Description
(My fix is below). When using basic authentication on Apache, where the username contains a non-ascii character, e.g. Bjørn :-), MoinMoin bombs out with a UnicodeDecode error.
Steps to reproduce
- set up basic authentication (in the appropriate directory or location directive in httpd.conf)
AuthType Basic AuthName "mywiki" AuthUserFile /etc/wikiusers Require valid-user
- create a user with funny chars
/usr/local/apache2/bin/htpasswd -bcs /etc/wikiusers Bjørn password
- change wikiconfig.py to use this and autocreate users
from MoinMoin import http ... auth = [http] user_autocreate = True
Example
Sorry, no example.
Details
attachment:dkwikierr.html
Date: Wed, 04 Oct 2006 11:46:01 +0000 Platform: Linux www.datakortet.no 2.4.20-31.9smp #1 SMP Tue Apr 13 17:40:10 EDT 2004 i686 Python: Python 2.4.3 (/opt/ActivePython-2.4/bin/python) MoinMoin: Release 1.5.5a (release)
MoinMoin Version |
|
OS and Version |
|
Python Version |
|
Server Setup |
|
Server Details |
|
Language you are using the wiki in (set in the browser/UserPreferences) |
|
Workaround
Don't know how to work around it, but it's easy to fix In user.py place the following line first in User.init (line 214 works for me)
auth_username = auth_username.decode('utf-8')
The data that comes from Apache is utf-8 encoded, while MoinMoin expects User.name to be Unicode (there's a self.name = auth_username in the third block of init).
That's the correct fix, but at an incorrect place.
That auth_username param is expected to be unicode, so you can't decode it in general. I'll try a fix outside of User object. -- ThomasWaldmann DateTime(2006-10-05T15:49:17Z)
Discussion
Plan
- Priority:
- Assigned to:
- Status: