]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
Bug 65145: Add Authorization Result States section; cross-reference from Require...
authorRich Bowen <rbowen@apache.org>
Fri, 1 May 2026 20:14:05 +0000 (20:14 +0000)
committerRich Bowen <rbowen@apache.org>
Fri, 1 May 2026 20:14:05 +0000 (20:14 +0000)
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1933687 13f79535-47bb-0310-9956-ffa450edef68

docs/manual/howto/auth.xml
docs/manual/mod/mod_authz_core.xml
docs/manual/mod/mod_authz_groupfile.xml
docs/manual/mod/mod_authz_host.xml
docs/manual/mod/mod_authz_user.xml

index 21f58eb64f0dfeb62bc0ce7e5359c8c1f44b66cc..a87a5111550a954ef0a7e545186fafa3198a2caf 100644 (file)
@@ -475,7 +475,10 @@ Require valid-user
         access is granted.  See
         <a href="../mod/mod_authz_core.html#logic">Authorization Containers</a>
         for an example of how they may be used to express complex
-        authorization logic.</p>
+        authorization logic.  Each authorization provider returns one
+        of three possible results; see
+        <a href="../mod/mod_authz_core.html#authzresults">Authorization Result States</a>
+        for details on how containers interpret these results.</p>
 
         <p>By default all
         <directive module="mod_authz_core">Require</directive>
index 6b3a1946387c9d6dfdd53ab9ebabd8369efc62d8..3b53ef112ec98e1b63987c810caa68fb236aaefc 100644 (file)
     </highlight>
 </section>
 
+<section id="authzresults"><title>Authorization Result States</title>
+
+    <p>Each authorization provider returns one of three possible results
+    when evaluating a <directive module="mod_authz_core">Require</directive>
+    directive:</p>
+
+    <dl>
+      <dt><strong>Granted</strong></dt>
+      <dd>The provider has verified that the request meets
+      its requirements.</dd>
+
+      <dt><strong>Denied</strong></dt>
+      <dd>The provider has determined that the request does not
+      meet its requirements.</dd>
+
+      <dt><strong>Neutral</strong></dt>
+      <dd>The provider has no opinion about the request. This
+      can occur when a provider is not relevant to the request
+      (e.g., a group-membership check when the request does not
+      involve group-based authorization).</dd>
+    </dl>
+
+    <p>The authorization container directives interpret these three
+    results as follows:</p>
+
+    <table border="1" style="zebra">
+    <columnspec><column width=".25"/><column width=".25"/><column width=".25"/><column width=".25"/></columnspec>
+    <tr><th>Container</th><th>Granted if...</th><th>Denied if...</th><th>Neutral treated as...</th></tr>
+    <tr><td><directive module="mod_authz_core" type="section">RequireAny</directive></td>
+        <td>at least one provider grants</td>
+        <td>all providers deny</td>
+        <td>deny (does not satisfy the requirement)</td></tr>
+    <tr><td><directive module="mod_authz_core" type="section">RequireAll</directive></td>
+        <td>no provider denies (and at least one grants)</td>
+        <td>any provider denies</td>
+        <td>grant (does not block the requirement)</td></tr>
+    <tr><td><directive module="mod_authz_core" type="section">RequireNone</directive></td>
+        <td>no provider grants</td>
+        <td>any provider grants</td>
+        <td>grant (does not block)</td></tr>
+    </table>
+
+    <p>When a <directive>Require</directive> directive is negated with
+    <code>not</code> (e.g., <code>Require not group temps</code>), a
+    granted result is inverted to denied and vice versa, but a neutral
+    result remains neutral. A negated directive can therefore never
+    independently authorize a request.</p>
+
+</section>
+
 <section id="requiredirectives"><title>The Require Directives</title>
 
   <p><module>mod_authz_core</module> provides some generic authorization
@@ -402,6 +452,7 @@ Require group admin
 
 <seealso><a href="../howto/access.html">Access Control howto</a></seealso>
 <seealso><a href="#logic">Authorization Containers</a></seealso>
+<seealso><a href="#authzresults">Authorization Result States</a></seealso>
 <seealso><module>mod_authn_core</module></seealso>
 <seealso><module>mod_authz_host</module></seealso>
 </directivesynopsis>
@@ -433,6 +484,7 @@ succeed.</description>
 </usage>
 
 <seealso><a href="#logic">Authorization Containers</a></seealso>
+<seealso><a href="#authzresults">Authorization Result States</a></seealso>
 <seealso><a href="../howto/auth.html">Authentication, Authorization,
     and Access Control</a></seealso>
 
@@ -471,6 +523,7 @@ must succeed for the enclosing directive to succeed.</description>
 </usage>
 
 <seealso><a href="#logic">Authorization Containers</a></seealso>
+<seealso><a href="#authzresults">Authorization Result States</a></seealso>
 <seealso><a href="../howto/auth.html">Authentication, Authorization,
     and Access Control</a></seealso>
 
@@ -512,6 +565,7 @@ must succeed for the enclosing directive to not fail.</description>
 </usage>
 
 <seealso><a href="#logic">Authorization Containers</a></seealso>
+<seealso><a href="#authzresults">Authorization Result States</a></seealso>
 <seealso><a href="../howto/auth.html">Authentication, Authorization,
     and Access Control</a></seealso>
 
index 014d136fa981e705aef271d55c75f0b29bbfd92b..42a3285f6e9b973c83b1c68086475ec1e80a4bd4 100644 (file)
@@ -36,6 +36,7 @@
 </summary>
 
 <seealso><directive module="mod_authz_core">Require</directive></seealso>
+<seealso><a href="mod_authz_core.html#authzresults">Authorization Result States</a></seealso>
 
 <section id="requiredirectives"><title>The Require Directives</title>
 
index f68a3c9be185aa53d8eddece815a0afa4bbd1063..29634a49a5d185e5bd73cb690d999225181aceee 100644 (file)
@@ -52,6 +52,7 @@ address)</description>
 <seealso><a href="../howto/auth.html">Authentication, Authorization,
     and Access Control</a></seealso>
 <seealso><directive module="mod_authz_core">Require</directive></seealso>
+<seealso><a href="mod_authz_core.html#authzresults">Authorization Result States</a></seealso>
 
 <section id="requiredirectives"><title>The Require Directives</title>
 
index 7461f15d2597911d0e42608514df25ecf0a5141f..615c3756f9f3df4a5b070c7a73daa865d6c5f657 100644 (file)
@@ -37,6 +37,7 @@
     grant access to all successfully authenticated users.</p>
 </summary>
 <seealso><directive module="mod_authz_core">Require</directive></seealso>
+<seealso><a href="mod_authz_core.html#authzresults">Authorization Result States</a></seealso>
 
 <section id="requiredirectives"><title>The Require Directives</title>