--- server/request.c.orig 2008-05-12 11:05:03.000000000 -0500 +++ server/request.c 2009-04-08 08:13:19.000000000 -0500 @@ -179,6 +179,7 @@ r->ap_auth_type = r->prev->ap_auth_type; } else { + const char* auth_header = ap_table_get(r->headers, "Authorization"); switch (ap_satisfies(r)) { case SATISFY_ALL: case SATISFY_NOSPEC: @@ -186,7 +187,7 @@ return decl_die(access_status, "check access", r); } - if (ap_some_auth_required(r)) { + if (ap_some_auth_required(r) || auth_header) { if (((access_status = ap_run_check_user_id(r)) != 0) || !ap_auth_type(r)) { return decl_die(access_status, ap_auth_type(r) @@ -207,7 +208,7 @@ case SATISFY_ANY: if (((access_status = ap_run_access_checker(r)) != 0)) { - if (!ap_some_auth_required(r)) { + if (!ap_some_auth_required(r) && !auth_header) { return decl_die(access_status, "check access", r); }