@@ -41,11 +41,11 @@ shaking with the client to indicate whether the client is permitted access.
4141Apache Authentication Provider
4242------------------------------
4343
44- When Apache 2.2 was released, it introduced the concept of authentication
45- providers. That is, Apache implements the hand shaking with the client for
46- authentication mechanisms such as Basic and Digest. All that the user
47- server side code needs to provide is a means of authenticating the actual
48- credentials of the user trying to gain access to the site.
44+ Apache implements the concept of authentication providers. That is, Apache
45+ implements the hand shaking with the client for authentication mechanisms
46+ such as Basic and Digest. All that the user server side code needs to
47+ provide is a means of authenticating the actual credentials of the user
48+ trying to gain access to the site.
4949
5050This greatly simplified the implementation of client authentication as the
5151hand shaking for a particular authentication mechanism was implemented only
@@ -58,7 +58,7 @@ directive to define a Python script file containing code which performs the
5858authenticating of user credentials as outlined.
5959
6060The required Apache configuration for defining the authentication provider
61- for Basic authentication when using Apache 2.2 would be::
61+ for Basic authentication would be::
6262
6363 AuthType Basic
6464 AuthName "Top Secret"
@@ -81,8 +81,8 @@ that the password is correct. If the user does not exist at all, then the
8181result should be 'None'. If the user does exist, the result should be
8282'True' or 'False' depending on whether the password was valid.
8383
84- If wishing to use Digest authentication, the configuration for Apache 2.2
85- would instead be::
84+ If wishing to use Digest authentication, the configuration would instead
85+ be::
8686
8787 AuthType Digest
8888 AuthName "Top Secret"
@@ -136,13 +136,7 @@ provider can also be defined::
136136 WSGIScriptAlias / /usr/local/django/mysite/apache/django.wsgi
137137
138138 <Directory /usr/local/django/mysite/apache>
139- <IfVersion < 2.4>
140- Order allow,deny
141- Allow from all
142- </IfVersion>
143- <IfVersion >= 2.4>
144- Require all granted
145- </IfVersion>
139+ Require all granted
146140
147141 WSGIApplicationGroup django
148142
@@ -189,21 +183,6 @@ Any configuration defined by !SetEnv directives is not passed in the
189183configuration specified in such a way from a '.htaccess' file.
190184Configuration should as a result be placed into the script file itself.
191185
192- Although authentication providers were a new feature in Apache 2.2, the
193- mod_wsgi module emulates the functionality so that the above can also be
194- used with Apache 2.0. In using Apache 2.0, the required Apache configuration
195- is however slightly different and needs to be::
196-
197- AuthType Basic
198- AuthName "Top Secret"
199- WSGIAuthUserScript /usr/local/wsgi/scripts/auth.wsgi
200- AuthAuthoritative Off
201- Require valid-user
202-
203- When using Apache 2.0 however, only support for Basic authentication
204- mechanism is provided. It is not possible to use Digest authentication.
205- When using Apache 1.3, this feature is not available at all.
206-
207186The benefit of using the Apache authentication provider mechanism rather
208187than the WSGI application doing it all itself, is that it can be used to
209188control access to a number of WSGI applications at the same time as well as
@@ -252,9 +231,6 @@ Any configuration defined by !SetEnv directives is not passed in the
252231configuration specified in such a way from a '.htaccess' file.
253232Configuration should as a result be placed into the script file itself.
254233
255- Configuration of group authorisation is the same whether Apache 2.0 or 2.2
256- is used. The feature is not available when using Apache 1.3.
257-
258234By default the group authorisation code is always executed in the context
259235of the first interpreter created by Python, ie., '%{GLOBAL}', and always in
260236the Apache child processes, never in a daemon process. The interpreter can
0 commit comments