[mod_python] Re: Mod_python 3.1.2b, sethandler + dir listning problem

StianSøiland stian at soiland.no
Fri Nov 7 11:00:13 EST 2003


On 2003-11-06 21:28:14, Svenne Krap wrote:

> The second problem, having the http-authorization-dialog popping up is 
> still not resolved... Any thoughts ?

We've found out with 3.1.2b that the AuthenHandler-thingie is not fully
functional.

We tried the simple example from the documentations, and even made it
simpler:

.htaccess
---------
PythonPath "['/our/libs'] + sys.path"
PythonAuthenHandler Cerebrum.web.login
AuthType Basic
AuthName "Cerebrum"
require valid-user


Cerebrum/web/login.py
---------------------
from mod_python import apache

def authenhandler(req):
    pw = req.get_basic_auth_pw()
    user = req.user
    if user != "":
        return apache.OK
    return apache.HTTP_UNAUTHORIZED



This failed with a 500 Server Error. Watching the apache log reveals a
hint:

[Fri Nov 07 10:49:42 2003] [error] [client 129.241.56.39]
python_handler: After PythonAuthenHandler req->user is NULL. Assign
req.user to avoid this error.

This seems weird.. modifing the function:


def authenhandler(req):
    req.user = ""
    pw = req.get_basic_auth_pw()
    user = req.user
    if user != "":
        return apache.OK
    return apache.HTTP_UNAUTHORIZED


This works perfect, the login dialog appears, and disappears if any
login name is entered.
    
Now - why should req.user need to be set first?

Even the simplest handler:

def authenhandler(req):
    return apache.HTTP_UNAUTHORIZED
    
fails.. but if req.user = "" is set, it works.         
    
-- 
Stian Søiland               Work toward win-win situation. Win-lose
Trondheim, Norway           is where you win and the other lose.
http://www.soiland.no/      Lose-lose and lose-win are left as an
                            exercise to the reader.  [Limoncelli/Hogan]



More information about the Mod_python mailing list