I am a little frustrated by the changes to authorization since 2.2.
I don't understand why they were needed in the first place, nor why
we need two different but equally incomprehensible ways to configure
the same things.

I totally understand the desire to make the implementation more
modular and to make a more sensible Satisfy logic, but I don't
understand the need for Match (as opposed to just extending Require)
and the odd changes in defaults (multiple Require defaults to
MatchAny semantics, but multiple Match defaults to MatchAll).

The relevant doc links are, for 2.2:

  http://httpd.apache.org/docs/2.2/howto/auth.html
  http://httpd.apache.org/docs/2.2/mod/mod_authz_host.html
  http://httpd.apache.org/docs/2.2/mod/core.html#require
  http://httpd.apache.org/docs/2.2/mod/core.html#satisfy

and for trunk:

  http://httpd.apache.org/docs/trunk/howto/auth.html
  http://httpd.apache.org/docs/trunk/mod/mod_authz_core.html
  http://httpd.apache.org/docs/trunk/mod/mod_access_compat.html

I suggest that we do the following:

1) make the new directives self-documenting

   remove MatchNotAll (nobody needs this)

   s/MatchAny/RequireAny/ig;
   s/MatchAll/RequireAll/ig;
   s/MatchNotAny/RequireNone/ig;

   s/(MergeAuthz|AuthzMerge)/AuthMerging/ig;   (off | and | or)

2) move new Match functionality to Require

3) default for multiple Require* is RequireAny
   - implies that "Require" and "Require not" are only mixed when
     used within a RequireAll or RequireNone container.

In other words, we have one set of authorization directives with
Require being backward-compatible with old configs, and the authz
docs can tell one story of how to build more and more complex
configurations using the same directives.

Does that make sense to folks?  I don't have much experience with
the auth directives (never had much use for them at my sites), so
let me know if I've overlooked something.

....Roy

Reply via email to