From 90dd2bc53f0c85889ab09b8f80e86863f9d167ee Mon Sep 17 00:00:00 2001 From: Chris Darroch Date: Tue, 25 Mar 2008 19:25:02 +0000 Subject: [PATCH] Add AuthzMergeRules to example configuration, and avoid use of ISO SQL:1999 Booleans in example SQL. Revise some introductory text. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@640951 13f79535-47bb-0310-9956-ffa450edef68 --- docs/manual/mod/mod_authz_dbd.xml | 65 ++++++++++++++++++++----------- 1 file changed, 42 insertions(+), 23 deletions(-) diff --git a/docs/manual/mod/mod_authz_dbd.xml b/docs/manual/mod/mod_authz_dbd.xml index f3e4bf03a8..901913cac7 100644 --- a/docs/manual/mod/mod_authz_dbd.xml +++ b/docs/manual/mod/mod_authz_dbd.xml @@ -32,22 +32,38 @@

This module provides authorization capabilities so that authenticated users can be allowed or denied access to portions - of the web site by group membership. It also provides - database/backend login/logout in conjunction with - mod_authn_dbd.

+ of the web site by group membership. Similar functionality is + provided by mod_authz_groupfile and + mod_authz_dbm, with the exception that + this module queries a SQL database to determine whether a + user is a member of a group.

+

This module can also provide database-backed user login/logout + capabilities. These are likely to be of most value when used + in conjunction with mod_authn_dbd.

+

This module relies on mod_dbd to specify + the backend database driver and connection parameters, and + manage the database connections.

Require + + AuthzMergeRules + + + AuthDBDUserPWQuery + DBDriver DBDParams
Database Login -

In addition to the standard authz function of checking group -membership, this module provides database Login/Logout capability. -Specifically, we can maintain a logged in/logged out status in -the database, and control the status via designated URLs (subject -of course to users supplying the necessary credentials).

+

+In addition to the standard authorization function of checking group +membership, this module can also provide server-side user session +management via database-backed login/logout capabilities. +Specifically, it can update a user's session status in the database +whenever the user visits designated URLs (subject of course to users +supplying the necessary credentials).

This works by defining two special Require types: Require dbd-login and Require dbd-logout. @@ -56,15 +72,14 @@ For usage details, see the configuration example below.

Client Login -

In conjunction with server login/logout, we may wish to implement -clientside login/out, for example by setting and unsetting a cookie -or other such token. Although this is not the business of an authz -module, client session management software should be able to tie its -operation in to database login/logout. To support this, -mod_authz_dbd exports an optional hook that will -be run whenever a user successfully logs into or out of the database. -Session management modules can use the hook to implement functions -to start and end a client session.

+

Some administrators may wish to implement client-side session +management that works in concert with the server-side login/logout +capabilities offered by this module, for example, by setting or unsetting +an HTTP cookie or other such token when a user logs in or out. +To support such integration, mod_authz_dbd exports an +optional hook that will be run whenever a user's status is updated in +the database. Other session management modules can then use the hook +to implement functions that start and end client-side sessions.

@@ -88,17 +103,19 @@ DBDExptime 300 # mod_authn_dbd SQL query to authenticate a logged-in user AuthDBDUserPWQuery \ - "SELECT password FROM authn WHERE user = %s AND login = true" + "SELECT password FROM authn WHERE user = %s AND login = 'true'" # mod_authz_core configuration for mod_authz_dbd + AuthzMergeRules Off Require dbd-group team # mod_authz_dbd configuration AuthzDBDQuery "SELECT group FROM authz WHERE user = %s" # when a user fails to be authenticated or authorized, - # invite them to login - ErrorDocument 401 /team-private/login-form.html + # invite them to login; this page should provide a link + # to /team-private/login.html + ErrorDocument 401 /login-info.html <Files login.html> # don't require user to already be logged in! @@ -106,9 +123,10 @@ DBDExptime 300 "SELECT password FROM authn WHERE user = %s" # dbd-login action executes a statement to log user in + AuthzMergeRules Off Require dbd-login AuthzDBDQuery \ - "UPDATE authn SET login = true WHERE user = %s" + "UPDATE authn SET login = 'true' WHERE user = %s" # return user to referring page (if any) after # successful login @@ -117,9 +135,10 @@ DBDExptime 300 <Files logout.html> # dbd-logout action executes a statement to log user out + AuthzMergeRules Off Require dbd-logout AuthzDBDQuery \ - "UPDATE authn SET login = false WHERE user = %s" + "UPDATE authn SET login = 'false' WHERE user = %s" </Files> </Directory> @@ -158,7 +177,7 @@ AuthzDBDQuery \ Example
 Require dbd-login
 AuthzDBDQuery \
-  "UPDATE authn SET login = true WHERE user = %s"
+  "UPDATE authn SET login = 'true' WHERE user = %s"
 
-- 2.40.0