Script authentication for AccountManagerPlugin
Similar to normal HTTP Authentication, this plugin uses explicit URL parameters for transferring the username and password to a web script that implements the check and returns the authentication result in the HTTP response code and content. When possible, the user's email address is transferred and set as well.
If you have any issues, create a new ticket.
Download the zipped source from here.
- AccountManagerPlugin must be installed.
- Grab and unpack the source.
- Change into the source directory that contains the
- Build an egg:
python setup.py bdist_egg
- Copy the egg, found in
pluginsdirectory of the desired Trac environment.
Set the URL of the script that does the authentication by adding the following to your
[account-manager] # password_store = ScriptAuthStore # When using ScriptAuthStore alone. password_store = HtPasswdStore,ScriptAuthStore script_auth_url = http://www.example.com/my_auth.php?u=<USERNAME>&p=<PASSWORD>
Note the two placeholders <USERNAME> and <PASSWORD> in the
Type them exactly like this in order to have them automatically replaced by the appropriate user details.
The script at
script_auth_url is expected to return
ok followed by newline followed by the email address of the user as the HTTP content when the user details are valid, or anything else otherwise.
The HTTP result codes like 200 and 401 can unfortunately not (easily) be utilized with Python <= 2.4.
An example for a script that implements authentication against the phpBB forum database is available here. It is useful when you cannot use the PhpBbAuthPlugin directly, eg because the phpBB database is not accessible from your Trac host.
- 7394 by Carsten on 2010-01-13 23:23:40
Added the very important URL encoding for the username and password parameters. The encoding of other parts of the URL is up to the user (option 'script_auth_url').
- 7388 by Carsten on 2010-01-13 19:33:28
Initial import of files.
- 7387 by Carsten on 2010-01-13 16:40:12
New hack ScriptAuthPlugin, created by Carsten