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 users email address is transferred and set as well.
If you have any issues, create a new ticket.
Download and Source
- First make sure you have AccountManagerPlugin installed
- Grab the source
- Unpack the source
- Change into the source directory that contains the setup.py file
- Build an egg:
python setup.py bdist_egg
- Copy the egg, found in dist/ to the plugins directory of the desired trac environment
Set the URL of the script that does the authentication:
[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 script_auth_url. 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, e.g. because the phpBB database is not accessible from your Trac host.
-  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').
-  by Carsten on 2010-01-13 19:33:28
Initial import of files.
-  by Carsten on 2010-01-13 16:40:12
New hack ScriptAuthPlugin, created by Carsten