mirror of
				https://github.com/apache/httpd.git
				synced 2025-10-28 20:34:59 +03:00 
			
		
		
		
	git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1890574 13f79535-47bb-0310-9956-ffa450edef68
		
			
				
	
	
		
			747 lines
		
	
	
		
			52 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
			
		
		
	
	
			747 lines
		
	
	
		
			52 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
| <?xml version="1.0" encoding="UTF-8"?>
 | ||
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 | ||
| <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head>
 | ||
| <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
 | ||
| <!--
 | ||
|         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 | ||
|               This file is generated from xml source: DO NOT EDIT
 | ||
|         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 | ||
|       -->
 | ||
| <title>mod_auth_form - Apache HTTP Server Version 2.5</title>
 | ||
| <link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
 | ||
| <link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
 | ||
| <link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
 | ||
| <script src="../style/scripts/prettify.min.js" type="text/javascript">
 | ||
| </script>
 | ||
| 
 | ||
| <link href="../images/favicon.ico" rel="shortcut icon" /></head>
 | ||
| <body>
 | ||
| <div id="page-header">
 | ||
| <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a></p>
 | ||
| <p class="apache">Apache HTTP Server Version 2.5</p>
 | ||
| <img alt="" src="../images/feather.png" /></div>
 | ||
| <div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div>
 | ||
| <div id="path">
 | ||
| <a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Server</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a> > <a href="./">Modules</a></div>
 | ||
| <div id="page-content">
 | ||
| <div id="preamble"><h1>Apache Module mod_auth_form</h1>
 | ||
| <div class="toplang">
 | ||
| <p><span>Available Languages: </span><a href="../en/mod/mod_auth_form.html" title="English"> en </a> |
 | ||
| <a href="../fr/mod/mod_auth_form.html" hreflang="fr" rel="alternate" title="Français"> fr </a></p>
 | ||
| </div>
 | ||
| <table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Form authentication</td></tr>
 | ||
| <tr><th><a href="module-dict.html#Status">Status:</a></th><td>Base</td></tr>
 | ||
| <tr><th><a href="module-dict.html#ModuleIdentifier">Module Identifier:</a></th><td>auth_form_module</td></tr>
 | ||
| <tr><th><a href="module-dict.html#SourceFile">Source File:</a></th><td>mod_auth_form.c</td></tr>
 | ||
| <tr><th><a href="module-dict.html#Compatibility">Compatibility:</a></th><td>Available in Apache 2.3 and later</td></tr></table>
 | ||
| <h3>Summary</h3>
 | ||
| 
 | ||
|     <div class="warning"><h3>Warning</h3>
 | ||
|       <p>Form authentication depends on the <code class="module"><a href="../mod/mod_session.html">mod_session</a></code>
 | ||
|       modules, and these modules make use of HTTP cookies, and as such can fall
 | ||
|       victim to Cross Site Scripting attacks, or expose potentially private
 | ||
|       information to clients. Please ensure that the relevant risks have
 | ||
|       been taken into account before enabling the session functionality on
 | ||
|       your server.</p>
 | ||
|     </div>
 | ||
| 
 | ||
|     <p>This module allows the use of an HTML login form to restrict access
 | ||
|     by looking up users in the given providers. HTML forms require
 | ||
|     significantly more configuration than the alternatives, however an
 | ||
|     HTML login form can provide a much friendlier experience for end users.
 | ||
|     </p>
 | ||
| 
 | ||
|     <p>HTTP basic authentication is provided by
 | ||
|     <code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code>, and HTTP digest authentication is
 | ||
|     provided by <code class="module"><a href="../mod/mod_auth_digest.html">mod_auth_digest</a></code>.  This module should
 | ||
|     be combined with at least one authentication module
 | ||
|     such as <code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code> and one authorization
 | ||
|     module such as <code class="module"><a href="../mod/mod_authz_user.html">mod_authz_user</a></code>.</p>
 | ||
| 
 | ||
|     <p>Once the user has been successfully authenticated, the user's login
 | ||
|     details will be stored in a session provided by <code class="module"><a href="../mod/mod_session.html">mod_session</a></code>.
 | ||
|     </p>
 | ||
| 
 | ||
| </div>
 | ||
| <div id="quickview"><h3>Topics</h3>
 | ||
| <ul id="topics">
 | ||
| <li><img alt="" src="../images/down.gif" /> <a href="#basicconfig">Basic Configuration</a></li>
 | ||
| <li><img alt="" src="../images/down.gif" /> <a href="#standalone">Standalone Login</a></li>
 | ||
| <li><img alt="" src="../images/down.gif" /> <a href="#inline">Inline Login</a></li>
 | ||
| <li><img alt="" src="../images/down.gif" /> <a href="#inlinepreservebody">Inline Login with Body Preservation</a></li>
 | ||
| <li><img alt="" src="../images/down.gif" /> <a href="#loggingout">Logging Out</a></li>
 | ||
| <li><img alt="" src="../images/down.gif" /> <a href="#urlencoding">Usernames and Passwords</a></li>
 | ||
| </ul><h3 class="directives">Directives</h3>
 | ||
| <ul id="toc">
 | ||
| <li><img alt="" src="../images/down.gif" /> <a href="#authformauthoritative">AuthFormAuthoritative</a></li>
 | ||
| <li><img alt="" src="../images/down.gif" /> <a href="#authformbody">AuthFormBody</a></li>
 | ||
| <li><img alt="" src="../images/down.gif" /> <a href="#authformdisablenostore">AuthFormDisableNoStore</a></li>
 | ||
| <li><img alt="" src="../images/down.gif" /> <a href="#authformfakebasicauth">AuthFormFakeBasicAuth</a></li>
 | ||
| <li><img alt="" src="../images/down.gif" /> <a href="#authformlocation">AuthFormLocation</a></li>
 | ||
| <li><img alt="" src="../images/down.gif" /> <a href="#authformloginrequiredlocation">AuthFormLoginRequiredLocation</a></li>
 | ||
| <li><img alt="" src="../images/down.gif" /> <a href="#authformloginsuccesslocation">AuthFormLoginSuccessLocation</a></li>
 | ||
| <li><img alt="" src="../images/down.gif" /> <a href="#authformlogoutlocation">AuthFormLogoutLocation</a></li>
 | ||
| <li><img alt="" src="../images/down.gif" /> <a href="#authformmethod">AuthFormMethod</a></li>
 | ||
| <li><img alt="" src="../images/down.gif" /> <a href="#authformmimetype">AuthFormMimetype</a></li>
 | ||
| <li><img alt="" src="../images/down.gif" /> <a href="#authformpassword">AuthFormPassword</a></li>
 | ||
| <li><img alt="" src="../images/down.gif" /> <a href="#authformprovider">AuthFormProvider</a></li>
 | ||
| <li><img alt="" src="../images/down.gif" /> <a href="#authformsitepassphrase">AuthFormSitePassphrase</a></li>
 | ||
| <li><img alt="" src="../images/down.gif" /> <a href="#authformsize">AuthFormSize</a></li>
 | ||
| <li><img alt="" src="../images/down.gif" /> <a href="#authformusername">AuthFormUsername</a></li>
 | ||
| </ul>
 | ||
| <h3>Bugfix checklist</h3><ul class="seealso"><li><a href="https://www.apache.org/dist/httpd/CHANGES_2.4">httpd changelog</a></li><li><a href="https://bz.apache.org/bugzilla/buglist.cgi?bug_status=__open__&list_id=144532&product=Apache%20httpd-2&query_format=specific&order=changeddate%20DESC%2Cpriority%2Cbug_severity&component=mod_auth_form">Known issues</a></li><li><a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2&component=mod_auth_form">Report a bug</a></li></ul><h3>See also</h3>
 | ||
| <ul class="seealso">
 | ||
| <li><code class="module"><a href="../mod/mod_session.html">mod_session</a></code></li>
 | ||
| <li><code class="directive"><a href="../mod/mod_authn_core.html#authname">AuthName</a></code></li>
 | ||
| <li><code class="directive"><a href="../mod/mod_authn_core.html#authtype">AuthType</a></code></li>
 | ||
| <li><code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code></li>
 | ||
| <li><a href="../howto/auth.html">Authentication howto</a></li>
 | ||
| <li><a href="#comments_section">Comments</a></li></ul></div>
 | ||
| <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | ||
| <div class="section">
 | ||
| <h2><a name="basicconfig" id="basicconfig">Basic Configuration</a> <a title="Permanent link" href="#basicconfig" class="permalink">¶</a></h2>
 | ||
| 
 | ||
|       <p>To protect a particular URL with <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code>, you need to
 | ||
|       decide where you will store your <var>session</var>, and you will need to
 | ||
|       decide what method you will use to authenticate. In this simple example, the
 | ||
|       login details will be stored in a session based on
 | ||
|       <code class="module"><a href="../mod/mod_session_cookie.html">mod_session_cookie</a></code>, and authentication will be attempted against
 | ||
|       a file using <code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code>. If authentication is unsuccessful,
 | ||
|       the user will be redirected to the form login page.</p>
 | ||
| 
 | ||
|       <div class="example"><h3>Basic example</h3><pre class="prettyprint lang-config"><Location "/admin">
 | ||
|     AuthFormProvider file
 | ||
|     AuthUserFile "conf/passwd"
 | ||
|     AuthType form
 | ||
|     AuthName "/admin"
 | ||
|     AuthFormLoginRequiredLocation "http://example.com/login.html"
 | ||
| 
 | ||
|     Session On
 | ||
|     SessionCookieName session path=/
 | ||
| 
 | ||
|     Require valid-user
 | ||
| </Location></pre>
 | ||
| </div>
 | ||
| 
 | ||
|       <p>The directive <code class="directive"><a href="../mod/mod_authn_core.html#authtype">AuthType</a></code> will enable
 | ||
|       the <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> authentication when set to the value <var>form</var>.
 | ||
|       The directives <code class="directive"><a href="#authformprovider">AuthFormProvider</a></code> and
 | ||
|       <code class="directive"><a href="../mod/mod_authn_file.html#authuserfile">AuthUserFile</a></code> specify that usernames
 | ||
|       and passwords should be checked against the chosen file.</p>
 | ||
| 
 | ||
|       <p>The directives <code class="directive"><a href="../mod/mod_session.html#session">Session</a></code> and
 | ||
|       <code class="directive"><a href="../mod/mod_session_cookie.html#sessioncookiename">SessionCookieName</a></code> 
 | ||
|       session stored within an HTTP cookie on the browser. For more information
 | ||
|       on the different options for configuring a session, read the documentation for
 | ||
|       <code class="module"><a href="../mod/mod_session.html">mod_session</a></code>.</p>
 | ||
| 
 | ||
|       <p>You can optionally add a 
 | ||
|       <code class="directive"><a href="../mod/mod_session_crypto.html#sessioncryptopassphrase">SessionCryptoPassphrase</a></code> to 
 | ||
|       create an encrypted session cookie. This required the additional
 | ||
|       module <code class="module"><a href="../mod/mod_session_crypto.html">mod_session_crypto</a></code> be loaded.</p>
 | ||
| 
 | ||
|       <p>In the simple example above, a URL has been protected by
 | ||
|       <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code>, but the user has yet to be given an opportunity to
 | ||
|       enter their username and password. Options for doing so include providing a
 | ||
|       dedicated standalone login page for this purpose, or for providing the login
 | ||
|       page inline.</p>
 | ||
|     </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | ||
| <div class="section">
 | ||
| <h2><a name="standalone" id="standalone">Standalone Login</a> <a title="Permanent link" href="#standalone" class="permalink">¶</a></h2>
 | ||
| 
 | ||
|       <p>The login form can be hosted as a standalone page, or can be provided inline on
 | ||
|       the same page.</p>
 | ||
| 
 | ||
|       <p>When configuring the login as a standalone page, unsuccessful authentication
 | ||
|       attempts should be redirected to a login form created by the website for this purpose,
 | ||
|       using the <code class="directive"><a href="#authformloginrequiredlocation">AuthFormLoginRequiredLocation</a></code>
 | ||
|       directive. Typically this login page will contain an HTML form, asking the user to
 | ||
|       provide their usename and password.</p>
 | ||
| 
 | ||
|       <div class="example"><h3>Example login form</h3><pre class="prettyprint lang-html"><form method="POST" action="/dologin.html">
 | ||
|   Username: <input type="text" name="httpd_username" value="" />
 | ||
|   Password: <input type="password" name="httpd_password" value="" />
 | ||
|   <input type="submit" name="login" value="Login" />
 | ||
| </form></pre>
 | ||
| </div>
 | ||
| 
 | ||
|       <p>The part that does the actual login is handled by the <var>form-login-handler</var>.
 | ||
|       The action of the form should point at this handler, which is configured within
 | ||
|       Apache httpd as follows:</p>
 | ||
| 
 | ||
|       <div class="example"><h3>Form login handler example</h3><pre class="prettyprint lang-config"><Location "/dologin.html">
 | ||
|     SetHandler form-login-handler
 | ||
|     AuthFormLoginRequiredLocation "http://example.com/login.html"
 | ||
|     AuthFormLoginSuccessLocation "http://example.com/admin/index.html"
 | ||
|     AuthFormProvider file
 | ||
|     AuthUserFile "conf/passwd"
 | ||
|     AuthType form
 | ||
|     AuthName /admin
 | ||
|     Session On
 | ||
|     SessionCookieName session path=/
 | ||
| </Location></pre>
 | ||
| </div>
 | ||
| 
 | ||
|       <p>The URLs specified by the
 | ||
|       <code class="directive"><a href="#authformloginrequiredlocation">AuthFormLoginRequiredLocation</a></code> directive will typically
 | ||
|       point to a page explaining to the user that their login attempt was unsuccessful, and they
 | ||
|       should try again.  The <code class="directive"><a href="#authformloginsuccesslocation">AuthFormLoginSuccessLocation</a></code>
 | ||
|       directive specifies the URL the user should be redirected to upon successful login.</p>
 | ||
| 
 | ||
|       <p>Alternatively, the URL to redirect the user to on success can be embedded within the login
 | ||
|       form, as in the example below. As a result, the same <var>form-login-handler</var> can be
 | ||
|       reused for different areas of a website.</p>
 | ||
| 
 | ||
|       <div class="example"><h3>Example login form with location</h3><pre class="prettyprint lang-html"><form method="POST" action="/dologin.html">
 | ||
|   Username: <input type="text" name="httpd_username" value="" />
 | ||
|   Password: <input type="password" name="httpd_password" value="" />
 | ||
|   <input type="submit" name="login" value="Login" />
 | ||
|   <input type="hidden" name="httpd_location" value="http://example.com/success.html" />
 | ||
| </form></pre>
 | ||
| </div>
 | ||
| 
 | ||
|     </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | ||
| <div class="section">
 | ||
| <h2><a name="inline" id="inline">Inline Login</a> <a title="Permanent link" href="#inline" class="permalink">¶</a></h2>
 | ||
| 
 | ||
|       <div class="warning"><h3>Warning</h3>
 | ||
|         <p>A risk exists that under certain circumstances, the login form configured
 | ||
|         using inline login may be submitted more than once, revealing login credentials to
 | ||
|         the application running underneath. The administrator must ensure that the underlying
 | ||
|         application is properly secured to prevent abuse. If in doubt, use the
 | ||
|         standalone login configuration.</p>
 | ||
|       </div>
 | ||
| 
 | ||
|       <p>As an alternative to having a dedicated login page for a website, it is possible to
 | ||
|       configure <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> to authenticate users inline, without being
 | ||
|       redirected to another page. This allows the state of the current page to be preserved
 | ||
|       during the login attempt. This can be useful in a situation where a time limited
 | ||
|       session is in force, and the session times out in the middle of the user request. The
 | ||
|       user can be re-authenticated in place, and they can continue where they left off.</p>
 | ||
| 
 | ||
|       <p>If a non-authenticated user attempts to access a page protected by
 | ||
|       <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> that isn't configured with a
 | ||
|       <code class="directive"><a href="#authformloginrequiredlocation">AuthFormLoginRequiredLocation</a></code> directive,
 | ||
|       a <var>HTTP_UNAUTHORIZED</var> status code is returned to the browser indicating to the user
 | ||
|       that they are not authorized to view the page.</p>
 | ||
| 
 | ||
|       <p>To configure inline authentication, the administrator overrides the error document
 | ||
|       returned by the <var>HTTP_UNAUTHORIZED</var> status code with a custom error document
 | ||
|       containing the login form, as follows:</p>
 | ||
| 
 | ||
|       <div class="example"><h3>Basic inline example</h3><pre class="prettyprint lang-config">AuthFormProvider file
 | ||
| ErrorDocument 401 "/login.shtml"
 | ||
| AuthUserFile "conf/passwd"
 | ||
| AuthType form
 | ||
| AuthName /admin
 | ||
| AuthFormLoginRequiredLocation "http://example.com/login.html"
 | ||
| Session On
 | ||
| SessionCookieName session path=/</pre>
 | ||
| </div>
 | ||
| 
 | ||
|       <p>The error document page should contain a login form with an empty action property,
 | ||
|       as per the example below.  This has the effect of submitting the form to
 | ||
|       the original protected URL, without the page having to know what that
 | ||
|       URL is.</p>
 | ||
| 
 | ||
|       <div class="example"><h3>Example inline login form</h3><pre class="prettyprint lang-html"><form method="POST" <strong>action=""</strong>>
 | ||
|   Username: <input type="text" name="httpd_username" value="" />
 | ||
|   Password: <input type="password" name="httpd_password" value="" />
 | ||
|   <input type="submit" name="login" value="Login" />
 | ||
| </form></pre>
 | ||
| </div>
 | ||
| 
 | ||
|       <p>When the end user has filled in their login details, the form will make
 | ||
|       an HTTP POST request to the original password protected URL.
 | ||
|       <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> will intercept this POST request, and if
 | ||
|       HTML fields are found present for the username and password, the user
 | ||
|       will be logged in, and the original password protected URL will be returned
 | ||
|       to the user as a GET request.</p>
 | ||
| 
 | ||
|     </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | ||
| <div class="section">
 | ||
| <h2><a name="inlinepreservebody" id="inlinepreservebody">Inline Login with Body Preservation</a> <a title="Permanent link" href="#inlinepreservebody" class="permalink">¶</a></h2>
 | ||
| 
 | ||
|       <p>A limitation of the inline login technique described above is that should an
 | ||
|       HTML form POST have resulted in the request to authenticate or
 | ||
|       reauthenticate, the
 | ||
|       contents of the original form posted by the browser will be lost. Depending on
 | ||
|       the function of the website, this could present significant inconvenience for the
 | ||
|       end user.</p>
 | ||
| 
 | ||
|       <p><code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> addresses this by allowing the method and body
 | ||
|       of the original request to be embedded in the login form. If authentication
 | ||
|       is successful, the original method and body will be retried by Apache httpd, preserving
 | ||
|       the state of the original request.</p>
 | ||
| 
 | ||
|       <p>To enable body preservation, add three additional fields to the login form as
 | ||
|       per the example below.</p>
 | ||
| 
 | ||
|       <div class="example"><h3>Example with body preservation</h3><pre class="prettyprint lang-html"><form method="POST" action="">
 | ||
|   Username: <input type="text" name="httpd_username" value="" />
 | ||
|   Password: <input type="password" name="httpd_password" value="" />
 | ||
|   <input type="submit" name="login" value="Login" />
 | ||
|   <br />  <strong><input type="hidden" name="httpd_method" value="POST" />
 | ||
|   <input type="hidden" name="httpd_mimetype" value="application/x-www-form-urlencoded" />
 | ||
|   <input type="hidden" name="httpd_body" value="name1=value1&name2=value2" /></strong><br />
 | ||
| </form></pre>
 | ||
| </div>
 | ||
| 
 | ||
|       <p>How the method, mimetype and body of the original request are embedded within the
 | ||
|       login form will depend on the platform and technology being used within the website.
 | ||
|       </p>
 | ||
| 
 | ||
|       <p>One option is to use the <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> module along with the
 | ||
|       <code class="directive"><a href="../mod/mod_request.html#keptbodysize">KeptBodySize</a></code> directive, along with a suitable
 | ||
|       CGI script to embed the variables in the form.</p>
 | ||
| 
 | ||
|       <p>Another option is to render the login form using a CGI script or other dynamic
 | ||
|       technology.</p>
 | ||
| 
 | ||
|       <div class="example"><h3>CGI example</h3><pre class="prettyprint lang-config">AuthFormProvider file
 | ||
| ErrorDocument 401 "/cgi-bin/login.cgi"
 | ||
| ...</pre>
 | ||
| </div>
 | ||
| 
 | ||
|     </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | ||
| <div class="section">
 | ||
| <h2><a name="loggingout" id="loggingout">Logging Out</a> <a title="Permanent link" href="#loggingout" class="permalink">¶</a></h2>
 | ||
| 
 | ||
|       <p>To enable a user to log out of a particular session, configure a page to
 | ||
|       be handled by the <var>form-logout-handler</var>. Any attempt to access this
 | ||
|       URL will cause the username and password to be removed from the current
 | ||
|       session, effectively logging the user out.</p>
 | ||
| 
 | ||
|       <p>By setting the
 | ||
|       <code class="directive"><a href="#authformlogoutlocation">AuthFormLogoutLocation</a></code> directive,
 | ||
|       a URL can be specified that the browser will be redirected to on successful
 | ||
|       logout. This URL might explain to the user that they have been logged out, and
 | ||
|       give the user the option to log in again.</p>
 | ||
| 
 | ||
|       <div class="example"><h3>Basic logout example</h3><pre class="prettyprint lang-config">SetHandler form-logout-handler
 | ||
| AuthName realm
 | ||
| AuthFormLogoutLocation "http://example.com/loggedout.html"
 | ||
| Session On
 | ||
| SessionCookieName session path=/</pre>
 | ||
| </div>
 | ||
| 
 | ||
|       <p>Note that logging a user out does not delete the session; it merely removes
 | ||
|       the username and password from the session. If this results in an empty session,
 | ||
|       the net effect will be the removal of that session, but this is not
 | ||
|       guaranteed. If you want to guarantee the removal of a session, set the
 | ||
|       <code class="directive"><a href="../mod/mod_session.html#sessionmaxage">SessionMaxAge</a></code> directive to a small
 | ||
|       value, like 1 (setting the directive to zero would mean no session age limit).
 | ||
|       </p>
 | ||
| 
 | ||
|       <div class="example"><h3>Basic session expiry example</h3><pre class="prettyprint lang-config">SetHandler form-logout-handler
 | ||
| AuthFormLogoutLocation "http://example.com/loggedout.html"
 | ||
| Session On
 | ||
| SessionMaxAge 1
 | ||
| SessionCookieName session path=/</pre>
 | ||
| </div>
 | ||
| 
 | ||
|     </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | ||
| <div class="section">
 | ||
| <h2><a name="urlencoding" id="urlencoding">Usernames and Passwords</a> <a title="Permanent link" href="#urlencoding" class="permalink">¶</a></h2>
 | ||
|     <p>Note that form submission involves URLEncoding the form data:
 | ||
|     in this case the username and password.  You should therefore
 | ||
|     pick usernames and passwords that avoid characters that are
 | ||
|     URLencoded in form submission, or you may get unexpected results.</p>
 | ||
|     </div>
 | ||
| <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | ||
| <div class="directive-section"><h2><a name="AuthFormAuthoritative" id="AuthFormAuthoritative">AuthFormAuthoritative</a> <a name="authformauthoritative" id="authformauthoritative">Directive</a> <a title="Permanent link" href="#authformauthoritative" class="permalink">¶</a></h2>
 | ||
| <table class="directive">
 | ||
| <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Sets whether authorization and authentication are passed to
 | ||
| lower level modules</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthFormAuthoritative On|Off</code></td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>AuthFormAuthoritative On</code></td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_auth_form</td></tr>
 | ||
| </table>
 | ||
|     <p>Normally, each authorization module listed in <code class="directive"><a href="#authformprovider">AuthFormProvider</a></code> will attempt
 | ||
|     to verify the user, and if the user is not found in any provider,
 | ||
|     access will be denied. Setting the
 | ||
|     <code class="directive">AuthFormAuthoritative</code> directive explicitly
 | ||
|     to <code>Off</code> allows for both authentication and
 | ||
|     authorization to be passed on to other non-provider-based modules
 | ||
|     if there is <strong>no userID</strong> or <strong>rule</strong>
 | ||
|     matching the supplied userID.  This should only be necessary when
 | ||
|     combining <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> with third-party modules
 | ||
|     that are not configured with the <code class="directive"><a href="#authformprovider">AuthFormProvider</a></code>
 | ||
|     directive.  When using such modules, the order of processing
 | ||
|     is determined in the modules' source code and is not configurable.</p>
 | ||
| 
 | ||
| </div>
 | ||
| <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | ||
| <div class="directive-section"><h2><a name="AuthFormBody" id="AuthFormBody">AuthFormBody</a> <a name="authformbody" id="authformbody">Directive</a> <a title="Permanent link" href="#authformbody" class="permalink">¶</a></h2>
 | ||
| <table class="directive">
 | ||
| <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>The name of a form field carrying the body of the request to attempt on successful login</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthFormBody <var>fieldname</var></code></td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>AuthFormBody httpd_body</code></td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_auth_form</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in Apache HTTP Server 2.3.0 and later</td></tr>
 | ||
| </table>
 | ||
|     <p>The <code class="directive">AuthFormBody</code> directive specifies
 | ||
|     the name of an HTML field which, if present, will contain the body of the request
 | ||
|     to submit should login be successful.</p>
 | ||
| 
 | ||
|     <p>By populating the form with fields described by
 | ||
|     <code class="directive"><a href="#authformmethod">AuthFormMethod</a></code>,
 | ||
|     <code class="directive"><a href="#authformmimetype">AuthFormMimetype</a></code> and
 | ||
|     <code class="directive">AuthFormBody</code>, a website can retry
 | ||
|     a request that may have been interrupted by the login screen, or by a session
 | ||
|     timeout.</p>
 | ||
| 
 | ||
| </div>
 | ||
| <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | ||
| <div class="directive-section"><h2><a name="AuthFormDisableNoStore" id="AuthFormDisableNoStore">AuthFormDisableNoStore</a> <a name="authformdisablenostore" id="authformdisablenostore">Directive</a> <a title="Permanent link" href="#authformdisablenostore" class="permalink">¶</a></h2>
 | ||
| <table class="directive">
 | ||
| <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Disable the CacheControl no-store header on the login page</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthFormDisableNoStore On|Off</code></td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>AuthFormDisableNoStore Off</code></td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_auth_form</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in Apache HTTP Server 2.3.0 and later</td></tr>
 | ||
| </table>
 | ||
|     <p>The <code class="directive">AuthFormDisableNoStore</code> flag
 | ||
|     disables the sending of a <code>Cache-Control no-store</code> header with the
 | ||
|     error 401 page returned when the user is not yet logged in. The purpose of the header
 | ||
|     is to make it difficult for an <code>ecmascript</code> application to attempt to resubmit the
 | ||
|     login form, and reveal the username and password to the backend application. Disable
 | ||
|     at your own risk.</p>
 | ||
| 
 | ||
| 
 | ||
| </div>
 | ||
| <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | ||
| <div class="directive-section"><h2><a name="AuthFormFakeBasicAuth" id="AuthFormFakeBasicAuth">AuthFormFakeBasicAuth</a> <a name="authformfakebasicauth" id="authformfakebasicauth">Directive</a> <a title="Permanent link" href="#authformfakebasicauth" class="permalink">¶</a></h2>
 | ||
| <table class="directive">
 | ||
| <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fake a Basic Authentication header</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthFormFakeBasicAuth On|Off</code></td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>AuthFormFakeBasicAuth Off</code></td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_auth_form</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in Apache HTTP Server 2.3.0 and later</td></tr>
 | ||
| </table>
 | ||
|     <p>The <code class="directive">AuthFormFakeBasicAuth</code> flag
 | ||
|     determines whether a <code>Basic Authentication</code> header will be added to
 | ||
|     the request headers. This can be used to expose the username and password to
 | ||
|     an underlying application, without the underlying application having to be aware
 | ||
|     of how the login was achieved.</p>
 | ||
| 
 | ||
| 
 | ||
| </div>
 | ||
| <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | ||
| <div class="directive-section"><h2><a name="AuthFormLocation" id="AuthFormLocation">AuthFormLocation</a> <a name="authformlocation" id="authformlocation">Directive</a> <a title="Permanent link" href="#authformlocation" class="permalink">¶</a></h2>
 | ||
| <table class="directive">
 | ||
| <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>The name of a form field carrying a URL to redirect to on successful login</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthFormLocation <var>fieldname</var></code></td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>AuthFormLocation httpd_location</code></td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_auth_form</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in Apache HTTP Server 2.3.0 and later</td></tr>
 | ||
| </table>
 | ||
|     <p>The <code class="directive">AuthFormLocation</code> directive specifies
 | ||
|     the name of an HTML field which, if present, will contain a URL to redirect the browser to
 | ||
|     should login be successful.</p>
 | ||
| 
 | ||
| </div>
 | ||
| <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | ||
| <div class="directive-section"><h2><a name="AuthFormLoginRequiredLocation" id="AuthFormLoginRequiredLocation">AuthFormLoginRequiredLocation</a> <a name="authformloginrequiredlocation" id="authformloginrequiredlocation">Directive</a> <a title="Permanent link" href="#authformloginrequiredlocation" class="permalink">¶</a></h2>
 | ||
| <table class="directive">
 | ||
| <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>The URL of the page to be redirected to should login be required</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthFormLoginRequiredLocation <var>url</var></code></td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>none</code></td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_auth_form</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in Apache HTTP Server 2.3.0 and later. The use of the expression
 | ||
| parser has been added in 2.4.4.</td></tr>
 | ||
| </table>
 | ||
|     <p>The <code class="directive">AuthFormLoginRequiredLocation</code> directive
 | ||
|     specifies the URL to redirect to should the user not be authorised to view a page. The value
 | ||
|     is parsed using the <a href="../expr.html">ap_expr</a> parser before being sent to the client.
 | ||
|     By default, if a user is not authorised to view a page, the HTTP response code
 | ||
|     <code>HTTP_UNAUTHORIZED</code> will be returned with the page specified by the
 | ||
|     <code class="directive"><a href="../mod/core.html#errordocument">ErrorDocument</a></code> directive. This directive overrides this
 | ||
|     default.</p>
 | ||
| 
 | ||
|     <p>Use this directive if you have a dedicated login page to redirect users to.</p>
 | ||
| 
 | ||
| 
 | ||
| </div>
 | ||
| <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | ||
| <div class="directive-section"><h2><a name="AuthFormLoginSuccessLocation" id="AuthFormLoginSuccessLocation">AuthFormLoginSuccessLocation</a> <a name="authformloginsuccesslocation" id="authformloginsuccesslocation">Directive</a> <a title="Permanent link" href="#authformloginsuccesslocation" class="permalink">¶</a></h2>
 | ||
| <table class="directive">
 | ||
| <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>The URL of the page to be redirected to should login be successful</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthFormLoginSuccessLocation <var>url</var></code></td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>none</code></td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_auth_form</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in Apache HTTP Server 2.3.0 and later. The use of the expression
 | ||
| parser has been added in 2.4.4.</td></tr>
 | ||
| </table>
 | ||
|     <p>The <code class="directive">AuthFormLoginSuccessLocation</code> directive
 | ||
|     specifies the URL to redirect to should the user have logged in successfully. The value is
 | ||
|     parsed using the <a href="../expr.html">ap_expr</a> parser before being sent to the client.
 | ||
|     This directive can be overridden if a form field has been defined containing another URL
 | ||
|     using the <code class="directive"><a href="#authformlocation">AuthFormLocation</a></code> directive.</p>
 | ||
| 
 | ||
|     <p>Use this directive if you have a dedicated login URL, and you have not embedded the
 | ||
|     destination page in the login form.</p>
 | ||
| 
 | ||
| 
 | ||
| </div>
 | ||
| <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | ||
| <div class="directive-section"><h2><a name="AuthFormLogoutLocation" id="AuthFormLogoutLocation">AuthFormLogoutLocation</a> <a name="authformlogoutlocation" id="authformlogoutlocation">Directive</a> <a title="Permanent link" href="#authformlogoutlocation" class="permalink">¶</a></h2>
 | ||
| <table class="directive">
 | ||
| <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>The URL to redirect to after a user has logged out</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthFormLogoutLocation <var>uri</var></code></td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>none</code></td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_auth_form</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in Apache HTTP Server 2.3.0 and later. The use of the expression
 | ||
| parser has been added in 2.4.4.</td></tr>
 | ||
| </table>
 | ||
|     <p>The <code class="directive">AuthFormLogoutLocation</code> directive
 | ||
|     specifies the URL of a page on the server to redirect to should the user attempt to log
 | ||
|     out. The value is parsed using the <a href="../expr.html">ap_expr</a> parser before
 | ||
|     being sent to the client.</p>
 | ||
| 
 | ||
|     <p>When a URI is accessed that is served by the handler <code>form-logout-handler</code>,
 | ||
|     the page specified by this directive will be shown to the end user. For example:</p>
 | ||
| 
 | ||
|     <div class="example"><h3>Example</h3><pre class="prettyprint lang-config"><Location "/logout">
 | ||
|     SetHandler form-logout-handler
 | ||
|     AuthFormLogoutLocation "http://example.com/loggedout.html"
 | ||
|     Session on
 | ||
|     #...
 | ||
| </Location></pre>
 | ||
| </div>
 | ||
| 
 | ||
|     <p>An attempt to access the URI <var>/logout/</var> will result in the user being logged
 | ||
|     out, and the page <var>/loggedout.html</var> will be displayed. Make sure that the page
 | ||
|     <var>loggedout.html</var> is not password protected, otherwise the page will not be
 | ||
|     displayed.</p>
 | ||
| 
 | ||
| 
 | ||
| </div>
 | ||
| <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | ||
| <div class="directive-section"><h2><a name="AuthFormMethod" id="AuthFormMethod">AuthFormMethod</a> <a name="authformmethod" id="authformmethod">Directive</a> <a title="Permanent link" href="#authformmethod" class="permalink">¶</a></h2>
 | ||
| <table class="directive">
 | ||
| <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>The name of a form field carrying the method of the request to attempt on successful login</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthFormMethod <var>fieldname</var></code></td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>AuthFormMethod httpd_method</code></td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_auth_form</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in Apache HTTP Server 2.3.0 and later</td></tr>
 | ||
| </table>
 | ||
|     <p>The <code class="directive">AuthFormMethod</code> directive specifies
 | ||
|     the name of an HTML field which, if present, will contain the method of the request
 | ||
|     to submit should login be successful.</p>
 | ||
| 
 | ||
|     <p>By populating the form with fields described by
 | ||
|     <code class="directive">AuthFormMethod</code>,
 | ||
|     <code class="directive"><a href="#authformmimetype">AuthFormMimetype</a></code> and
 | ||
|     <code class="directive"><a href="#authformbody">AuthFormBody</a></code>, a website can retry
 | ||
|     a request that may have been interrupted by the login screen, or by a session
 | ||
|     timeout.</p>
 | ||
| 
 | ||
| </div>
 | ||
| <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | ||
| <div class="directive-section"><h2><a name="AuthFormMimetype" id="AuthFormMimetype">AuthFormMimetype</a> <a name="authformmimetype" id="authformmimetype">Directive</a> <a title="Permanent link" href="#authformmimetype" class="permalink">¶</a></h2>
 | ||
| <table class="directive">
 | ||
| <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>The name of a form field carrying the mimetype of the body of the request to attempt on successful login</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthFormMimetype <var>fieldname</var></code></td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>AuthFormMimetype httpd_mimetype</code></td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_auth_form</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in Apache HTTP Server 2.3.0 and later</td></tr>
 | ||
| </table>
 | ||
|     <p>The <code class="directive">AuthFormMimetype</code> directive specifies
 | ||
|     the name of an HTML field which, if present, will contain the
 | ||
|     mimetype of the request to submit should login be successful.</p>
 | ||
| 
 | ||
|     <p>By populating the form with fields described by
 | ||
|     <code class="directive"><a href="#authformmethod">AuthFormMethod</a></code>,
 | ||
|     <code class="directive">AuthFormMimetype</code> and
 | ||
|     <code class="directive"><a href="#authformbody">AuthFormBody</a></code>, a website can retry
 | ||
|     a request that may have been interrupted by the login screen, or by a session
 | ||
|     timeout.</p>
 | ||
| 
 | ||
| </div>
 | ||
| <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | ||
| <div class="directive-section"><h2><a name="AuthFormPassword" id="AuthFormPassword">AuthFormPassword</a> <a name="authformpassword" id="authformpassword">Directive</a> <a title="Permanent link" href="#authformpassword" class="permalink">¶</a></h2>
 | ||
| <table class="directive">
 | ||
| <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>The name of a form field carrying the login password</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthFormPassword <var>fieldname</var></code></td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>AuthFormPassword httpd_password</code></td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_auth_form</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in Apache HTTP Server 2.3.0 and later</td></tr>
 | ||
| </table>
 | ||
|     <p>The <code class="directive">AuthFormPassword</code> directive specifies
 | ||
|     the name of an HTML field which, if present, will contain the password to be used to log
 | ||
|     in.</p>
 | ||
| 
 | ||
| </div>
 | ||
| <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | ||
| <div class="directive-section"><h2><a name="AuthFormProvider" id="AuthFormProvider">AuthFormProvider</a> <a name="authformprovider" id="authformprovider">Directive</a> <a title="Permanent link" href="#authformprovider" class="permalink">¶</a></h2>
 | ||
| <table class="directive">
 | ||
| <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Sets the authentication provider(s) for this location</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthFormProvider <var>provider-name</var>
 | ||
| [<var>provider-name</var>] ...</code></td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>AuthFormProvider file</code></td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_auth_form</td></tr>
 | ||
| </table>
 | ||
|     <p>The <code class="directive">AuthFormProvider</code> directive sets
 | ||
|     which provider is used to authenticate the users for this location.
 | ||
|     The default <code>file</code> provider is implemented
 | ||
|     by the <code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code> module.  Make sure
 | ||
|     that the chosen provider module is present in the server.</p>
 | ||
| 
 | ||
|     <div class="example"><h3>Example</h3><pre class="prettyprint lang-config"><Location "/secure">
 | ||
|     AuthType form
 | ||
|     AuthName "private area"
 | ||
|     AuthFormProvider  dbm
 | ||
|     AuthDBMType        SDBM
 | ||
|     AuthDBMUserFile    "/www/etc/dbmpasswd"
 | ||
|     Require            valid-user
 | ||
|     #...
 | ||
| </Location></pre>
 | ||
| </div>
 | ||
| 
 | ||
|     <p>Providers are implemented by <code class="module"><a href="../mod/mod_authn_dbm.html">mod_authn_dbm</a></code>,
 | ||
|     <code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code>, <code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code>,
 | ||
|     <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> and <code class="module"><a href="../mod/mod_authn_socache.html">mod_authn_socache</a></code>.</p>
 | ||
| 
 | ||
| </div>
 | ||
| <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | ||
| <div class="directive-section"><h2><a name="AuthFormSitePassphrase" id="AuthFormSitePassphrase">AuthFormSitePassphrase</a> <a name="authformsitepassphrase" id="authformsitepassphrase">Directive</a> <a title="Permanent link" href="#authformsitepassphrase" class="permalink">¶</a></h2>
 | ||
| <table class="directive">
 | ||
| <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Bypass authentication checks for high traffic sites</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthFormSitePassphrase <var>secret</var></code></td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>none</code></td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_auth_form</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in Apache HTTP Server 2.3.0 and later</td></tr>
 | ||
| </table>
 | ||
|     <p>The <code class="directive">AuthFormSitePassphrase</code> directive
 | ||
|     specifies a passphrase which, if present in the user session, causes Apache httpd to
 | ||
|     bypass authentication checks for the given URL. It can be used on high traffic websites
 | ||
|     to reduce the load induced on authentication infrastructure.</p>
 | ||
| 
 | ||
|     <p>The passphrase can be inserted into a user session by adding this directive to the
 | ||
|     configuration for the <var>form-login-handler</var>. The <var>form-login-handler</var>
 | ||
|     itself will always run the authentication checks, regardless of whether a passphrase
 | ||
|     is specified or not.</p>
 | ||
| 
 | ||
|     <div class="warning"><h3>Warning</h3>
 | ||
|       <p>If the session is exposed to the user through the use of
 | ||
|       <code class="module"><a href="../mod/mod_session_cookie.html">mod_session_cookie</a></code>, and the session is not protected with
 | ||
|       <code class="module"><a href="../mod/mod_session_crypto.html">mod_session_crypto</a></code>, the passphrase is open to potential exposure
 | ||
|       through a dictionary attack. Regardless of how the session is configured,
 | ||
|       ensure that this directive is not used within URL spaces where private user data
 | ||
|       could be exposed, or sensitive transactions can be conducted. Use at own risk.</p>
 | ||
|     </div>
 | ||
| 
 | ||
| 
 | ||
| </div>
 | ||
| <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | ||
| <div class="directive-section"><h2><a name="AuthFormSize" id="AuthFormSize">AuthFormSize</a> <a name="authformsize" id="authformsize">Directive</a> <a title="Permanent link" href="#authformsize" class="permalink">¶</a></h2>
 | ||
| <table class="directive">
 | ||
| <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>The largest size of the form in bytes that will be parsed for the login details</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthFormSize <var>size</var></code></td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>AuthFormSize 8192</code></td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_auth_form</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in Apache HTTP Server 2.3.0 and later</td></tr>
 | ||
| </table>
 | ||
|     <p>The <code class="directive">AuthFormSize</code> directive specifies
 | ||
|     the maximum size of the body of the request that will be parsed to find the login form.</p>
 | ||
| 
 | ||
|     <p>If a login request arrives that exceeds this size, the whole request will be aborted
 | ||
|     with the HTTP response code <code>HTTP_REQUEST_TOO_LARGE</code>.</p>
 | ||
| 
 | ||
|     <p>If you have populated the form with fields described by
 | ||
|     <code class="directive"><a href="#authformmethod">AuthFormMethod</a></code>,
 | ||
|     <code class="directive"><a href="#authformmimetype">AuthFormMimetype</a></code> and
 | ||
|     <code class="directive"><a href="#authformbody">AuthFormBody</a></code>, you probably want to set this
 | ||
|     field to a similar size as the <code class="directive"><a href="../mod/mod_request.html#keptbodysize">KeptBodySize</a></code>
 | ||
|     directive.</p>
 | ||
| 
 | ||
| 
 | ||
| </div>
 | ||
| <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 | ||
| <div class="directive-section"><h2><a name="AuthFormUsername" id="AuthFormUsername">AuthFormUsername</a> <a name="authformusername" id="authformusername">Directive</a> <a title="Permanent link" href="#authformusername" class="permalink">¶</a></h2>
 | ||
| <table class="directive">
 | ||
| <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>The name of a form field carrying the login username</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthFormUsername <var>fieldname</var></code></td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>AuthFormUsername httpd_username</code></td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_auth_form</td></tr>
 | ||
| <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in Apache HTTP Server 2.3.0 and later</td></tr>
 | ||
| </table>
 | ||
|     <p>The <code class="directive">AuthFormUsername</code> directive specifies
 | ||
|     the name of an HTML field which, if present, will contain the username to be used to log
 | ||
|     in.</p>
 | ||
| 
 | ||
| </div>
 | ||
| </div>
 | ||
| <div class="bottomlang">
 | ||
| <p><span>Available Languages: </span><a href="../en/mod/mod_auth_form.html" title="English"> en </a> |
 | ||
| <a href="../fr/mod/mod_auth_form.html" hreflang="fr" rel="alternate" title="Français"> fr </a></p>
 | ||
| </div><div class="top"><a href="#page-header"><img src="../images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Comments</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="https://httpd.apache.org/lists.html">mailing lists</a>.</div>
 | ||
| <script type="text/javascript"><!--//--><![CDATA[//><!--
 | ||
| var comments_shortname = 'httpd';
 | ||
| var comments_identifier = 'http://httpd.apache.org/docs/trunk/mod/mod_auth_form.html';
 | ||
| (function(w, d) {
 | ||
|     if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
 | ||
|         d.write('<div id="comments_thread"><\/div>');
 | ||
|         var s = d.createElement('script');
 | ||
|         s.type = 'text/javascript';
 | ||
|         s.async = true;
 | ||
|         s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
 | ||
|         (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
 | ||
|     }
 | ||
|     else {
 | ||
|         d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
 | ||
|     }
 | ||
| })(window, document);
 | ||
| //--><!]]></script></div><div id="footer">
 | ||
| <p class="apache">Copyright 2021 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
 | ||
| <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
 | ||
| if (typeof(prettyPrint) !== 'undefined') {
 | ||
|     prettyPrint();
 | ||
| }
 | ||
| //--><!]]></script>
 | ||
| </body></html> |