You are viewing a plain text version of this content. The canonical link for it is here.
Posted to modules-dev@httpd.apache.org by "Stuart A. Malone" <sa...@llamagraphics.com> on 2009/08/06 17:12:55 UTC

Forcing an auth_failure when using mod_auth_digest

Hi folks,

I'm working on a simple authorization module that enforces private  
directories on the server, so that only user "JaneDoe" can access  
files in "/files/JaneDoe/".  I'm trying to design the module so that  
it works with existing authentication modules like mod_auth_digest.

I'm having a problem when the user has successfully authenticated as  
one user, but is trying to access the directory of a different user.   
In this case, I'd like to send an authorization failure back to the  
browser so that the person can re-authenticate as the proper user.

My module is written as an auth_checker hook, and if the user name and  
directory name don't match, it fails using code like this:

     if (failure) {
         ap_note_auth_failure(r);
         return HTTP_UNAUTHORIZED;
     }

The problem is that when I'm using digest authentication, this causes  
Apache to generate a response header that looks like:

     WWW-Authenticate: Digest realm="Life Balance testing",  
nonce="47079ec014392"

when a valid response header from the mod_auth_digest module looks like:

     WWW-Authenticate: Digest realm="Life Balance testing",  
nonce="sjYB7HlwBAA=22401ec4e68cc4d29a242a512265fabcd2604c5b",  
algorithm=MD5, domain="/files", qop="auth"

If the user tries to re-authenticate using the bad response header,  
the re-authentication in mod_auth_digest fails with the error:

     Digest: invalid nonce 47079ec014392 received - length is not 52

It appears that mod_auth_digest does not call the standard  
ap_note_auth_failure function, but has a private  
ap_note_digest_auth_failure function it uses to generate the right  
response header.  Is there a good way for my module to generate the  
correct response header regardless of which authentication method is  
being used?

All advice on how to do this according to best practices are  
gratefully accepted,

Thanks,

--Stuart A. Malone
   Llamagraphics, Inc.
   Makers of Life Balance personal coaching software
   http://www.llamagraphics.com/