This module provides authorization capabilities so that
authenticated users can be allowed or denied access to portions
of the web site by group membership. Similar functionality is
provided by
This module can also provide database-backed user login/logout
capabilities. These are likely to be of most value when used
in conjunction with
This module relies on
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 dbd-login and Require dbd-logout.
For usage details, see the configuration example below.
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,
Whether you need to care about SQL security depends on what DBD driver and backend you use. With most drivers you don't have to do anything : the statement is prepared by the database at startup, and user input is used only as data. But you may need to untaint your input. At the time of writing, the only driver that requires you to take care is FreeTDS.
Please read
The
Require dbd-group directive,
it specifies a query to look up groups for the current user. This is
the standard functionality of other authorization modules such as
Require dbd-login or
Require dbd-logout directive, it will never deny access,
but will instead execute a SQL statement designed to log the user
in or out. The user must already be authenticated with
In all cases, the user's ID will be passed as a single string
parameter when the SQL query is executed. It may be referenced within
the query statement using a %s format specifier.
Specifies an optional SQL query to use after successful login
(or logout) to redirect the user to a URL, which may be
specific to the user. The user's ID will be passed as a single string
parameter when the SQL query is executed. It may be referenced within
the query statement using a %s format specifier.
The first column value of the first row returned by the query statement should be a string containing a URL to which to redirect the client. Subsequent rows will be ignored. If no rows are returned, the client will not be redirected.
Note that
Referer request
header is presentIn conjunction with Require dbd-login or
Require dbd-logout, this provides the option to
redirect the client back to the Referring page (the URL in
the Referer HTTP request header, if present).
When there is no Referer header,
AuthzDBDLoginToReferer On will be ignored.