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

  1. set up basic authentication (in the appropriate directory or location directive in httpd.conf)

AuthType Basic
AuthName "mywiki"
AuthUserFile /etc/wikiusers
Require valid-user
  1. create a user with funny chars

/usr/local/apache2/bin/htpasswd -bcs /etc/wikiusers Bjørn password
  1. 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).

Discussion

Plan


CategoryMoinMoinBug