| Sean True 
    seant at alum.mit.edu Thu Sep 7 19:04:17 EST 2000 
 I've been having trouble getting PythonAuthenHandler-s to work properly. On
my Microsoft IE 5.5 browser,
the password dialog was not popping up. After some digging (Writing Apache
Modules in Perl and C is-your-friend), I found on page 284 the
reccomendation that one call req.note_basic_auth-failure, a perl method, to
force the WWW-Authenticate field in the HTTP headers to be set. This will
cause the browser to pop a password dialog.
Since that method is not exposed in Python (wouldn't Swig make this a lot
easier?), I added the following code to mod_python.c
and things worked much better, first try:
	    /* SDT If an AuthenHandler and we failed, note failure */
	    if (strcmp(handler, "PythonAuthenHandler") == 0) {
	      if ((result == HTTP_UNAUTHORIZED)){
		ap_note_basic_auth_failure(req);
	      }
	    /* Original code continues */
	    /* authen handlers need one more thing
	     * if authentication failed and this handler is not
	     * authoritative, let the others handle it
	     */
	      if (strcmp(handler, "PythonAuthenHandler") == 0) {
		if ((result == HTTP_UNAUTHORIZED) &&
		    (! conf->authoritative)) {
		  result = DECLINED;
Any comments? Other than the obvious proper factoring of the if expression
...
-- Sean
-------
Sean True
Webreply, Inc.
 |