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]
|