While doing this patch (and ending up with 3 very small modules); I found the following legacy behaviour. Any feels as to if we shall kill these surprizing behaviourisms in 2.0 or stay as close to 1.3 as possibe ?:
-> if there are no requires - but there is Auth happening we actively OK. -> If there are no requires for the method (but there are requires for that directory for other methods) we actively OK. -> If we have for example a (Group,..)File but opening it failes then we ignore any 'require group' and DECLINE to other modules. Proposal to fixing these leaks (comment now or wait for code) and allowing small footprint modules to take part of the process over: -> mod_auth_file auth UserID/passwd against file DECLINE if no file configured ERROR if file read error (was DECLINE/UNAUTH) OK if ok DECLINE if UID not found & non-authoritative UNAUTH otherwise -> mod_auth_groupfile checks UserID against required 'require (valid-)group' DECLINE if no requirements at all (was OK) DECLINE if no group file configurued ERROR if file read error (was IGNORE) OK if in a group DECLINE if no applicable method requirments (was OK) DECLINE if no recognized method requirements DECLINE if not authoritative and not in recognized groups. UNAUTH otherwsie -> mod_require_user checks UserID against required 'require (valid-)user' DECLINE if no requirements at all (was OK) OK if in the list /valid user DECLINE if no applicable method requirements. (was OK) DECLINE if no recognized requirements DECLINE if there are lists, not in list but non authoritative UNAUTH otherwise And then - to get closer to the old apache: -> mod_auth_default auth DECLINE if no Basic Auth header/r->user. DECLINE if not authoritative UNAUTH otherwise check DECLINE if no r->user OK if no requires (*) OK if no applicable method requirements (*) DECLINE if not authoriative UNAUTH otherwise *: I.e. in mod_auth_default we 'fix' to get closer to the behaviour from 1.3; An alternative would be to not do this and change to always UNAUTH then when there is r->user information provided and not authoritative. I do want to allow fall through - so that a perl/php/java backend is able to get access if/when needed. Thus: -> apache core auth OK check OK Of course - the mod_auth_default could also be in the core of the http proocol handling. Does this make sense ? Dw. -- Dirk-Willem van Gulik