[Medusa-dev] auth_handler.py (auth_handler.handle_request) bug

Sergio Fernandez sfmunoz@teleline.es
Fri Nov 22 18:51:16 2002


Hello:

I have found a bug in auth_handler.py file, class auth_handler, method
handle_request (line 51). This bug exists in 0.5.2, 0.5.3 and CVS (Nov
22, 2002) versions.

I'm using SuSE 8.0, Python 2.2.

Simple Medusa startup script where you can see the problem could be:

	#!/usr/bin/env python

	import os
	import sys
	import asyncore

	from medusa import http_server
	from medusa import filesys
	from medusa import default_handler
	from medusa import auth_handler
	from medusa import logger

	lg = logger.file_logger(sys.stdout)
	hs = http_server.http_server ('',8080,None,lg)

	fs = filesys.os_filesystem('/var/www')
	dh = default_handler.default_handler(fs)

	audh = auth_handler.auth_handler({ 'user':'pass'},dh)
	hs.install_handler (audh)

	asyncore.loop()

If you access medusa_host:8080, you can see it asks you for user/password.
When you write them (user is 'user' and password is 'pass' as you can see
in startup script) an error appears in the browser:

	Error response
	Error code: 500
	Message: Internal Server Error.

In medusa log you can see:

	error: Server Error: exceptions.AttributeError, group: file: /usr/lib/python2.2/site-packages/medusa/auth_handler.py line: 51

To fix this bug, I have substituted bug line. Patch is:

diff -urN medusa-0.5.3.orig/auth_handler.py medusa-0.5.3/auth_handler.py
--- medusa-0.5.3.orig/auth_handler.py	Sat Mar 23 16:00:42 2002
+++ medusa-0.5.3/auth_handler.py	Sat Nov 16 17:50:48 2002
@@ -48,7 +48,7 @@
         if scheme:
             scheme = string.lower (scheme)
             if scheme == 'basic':
-                cookie = AUTHORIZATION.group(2)
+                cookie = get_header (AUTHORIZATION, request.header, 2)
                 try:
                     decoded = base64.decodestring (cookie)
                 except:

This patch works fine for default_handler. But when I have proved it I have
found other problem. In order to separate things, I will e-mail it in a
different message.

Sergio



More information about the Medusa-dev mailing list