Grant Beasley
gbeasley at tsa.ac.za
Thu Oct 3 13:40:20 EST 2002
Hi I'm trying to set up my website in such a way that the entire website is protected by an AuthenHandler, and the "cgi" directory (where my mod_python scripts run) is directed to a publisher (my own modification of the standard publisher). To do this, I setup Apache with the following directives: <Directory "C:/Projects/http/cgi"> SetHandler python-program PythonHandler mypub PythonDebug On </Directory> <Directory "C:/Projects/http"> SetHandler python-program PythonAuthenHandler authen AuthType Basic AuthName "Restricted Area" require valid-user PythonLogHandler log PythonDebug On </Directory> I've programmed my authenhandler (for debugging purposes) as follows: pw = req.get_basic_auth_pw() user = req.connection.user f = open("C:\\authendump.txt", "a") f.write("""Authen - %s URI: %s UNPARSED_URI: %s THE_REQUEST: %s PATH_INFO: %s FILENAME: %s USER: %s PW: %s ----------------- """ % (strftime('%d/%m/%Y %H:%M:%S', localtime()),req.uri, req.unparsed_uri, req.the_request, req.path_info, req.filename, user, pw)) if user is not None: return apache.OK else: return apache.HTTP_UNAUTHORIZED f.close() i.e. Just to dump a few variables for inspection. For a single request, the above configuration gives me the following: Authen - 03/10/2002 13:31:16 URI: /showuser UNPARSED_URI: /showuser THE_REQUEST: GET /cgi/cool/showuser HTTP/1.1 PATH_INFO: FILENAME: c:/projects/http/showuser USER: None PW: None ----------------- Authen - 03/10/2002 13:31:16 URI: /cgi/cool/showuser UNPARSED_URI: /cgi/cool/showuser THE_REQUEST: GET /cgi/cool/showuser HTTP/1.1 PATH_INFO: /showuser FILENAME: c:/projects/http/cgi/cool USER: None PW: None ----------------- Authen - 03/10/2002 13:31:18 URI: /showuser UNPARSED_URI: /showuser THE_REQUEST: GET /cgi/cool/showuser HTTP/1.1 PATH_INFO: FILENAME: c:/projects/http/showuser USER: gb PW: a ----------------- Authen - 03/10/2002 13:31:18 URI: /cgi/cool/showuser UNPARSED_URI: /cgi/cool/showuser THE_REQUEST: GET /cgi/cool/showuser HTTP/1.1 PATH_INFO: /showuser FILENAME: c:/projects/http/cgi/cool USER: gb PW: a ----------------- In other words the authenhandler code is executing twice, with a different URI. On inspection of the get_config() and get_dirs(), I can see that it's executing once for each of the above directives. What I'd like to know is why this occurs, and how do I prevent it? Any help appreciated. Grant Beasley
|