HttpAuthPlugin not redirecting authentication request to httpd
|Reported by:||Joe Kiniry||Owned by:||Noah Kantrowitz|
We have setup several Trac servers here in the School of Computer Science and Informatics at University College Dublin, one of which is support software development for a major EU FP6 grant. Thanks very much for this excellent software.
That being said, we have one small problem. Apologies for the priority and severity, but these issues are blocking some major work and server migrations happening at the moment here at UCD.
We have successfully configured about 25 different and very useful plugins and macros. The Trac servers run on an Apple XServer running OS X Server (Darwin 8.10.1 and OS X Server 10.4.10). We are using the Trac 0.10 install on Python 2.5 with Apache 2.2 and SQLite 3, all of which were installed via MacPorts 1.5. We prefer to use stable releases. All Trac access to httpd is via SSL. Insecure access via the HTTP protocol are redirected to HTTPS.
The core plugins involved with our problem with HttpAuthPlugin are (we suspect) PermRedirect, AccountManager, and XmlRpc. We are attempting to permit access to the problematic Trac via AccountManager's LoginModule, we only wish to permit authenticated access (and thus, the use of PermRedirect), and authentications are meant to happen via HttpAuth to an authentication URL on the httpd server that performs LDAP-based httpd authentication. We also need full XmlRpc access for our heavy Mylyn use.
Authenticating manually against the authentication URL
/auth works correctly, thus LDAP authentication in httpd is fine. Attempting to access any part of the site without authentication properly redirects to the
/login URL. Attempting to authenticate to the HTML-based login form provided by LoginModule fails.
Examining the server log during authentication shows that, while HttpAuth is loaded and activated, its attempt at authentication fails in HTTPAuthFilter, and moreover, the HTTPAuthFilter never attempted to perform an HTTP GET on the
/auth URL at all.
I have even gone so far as to annotate AccountManager and HttpAuth plugin code in an attempt to trace the problem. I have also compared the 0.10 releases of the relevant plugins to their trunks to see if any bugfixes in the 0.11 dev tree are relevant.
I am honestly a bit out of my comfort-zone, given I work mainly in formal verification of over-documented, formally specified, compiled, heavily typed languages. So, while quite cool and useful, Trac does not resemble those kinds of systems very much. :)
Anyone have any ideas?
Relevant parts of trac.ini can be provided if necessary, but performing a debug log shows all the proper plugins are loading. We are seeing some warning and error messages in the Trac logfile, but we believe that they are not relevant. They are appended below, just in case.
Thanks, Joe Kiniry
--- trac.log snippit:
AttributeError: 'NoneType' object has no attribute 'get' 2007-09-12 00:43:57,912 Trac[main] ERROR: 'BatchModifyModule' object has no attribute 'get_htdocs_dirs' Traceback (most recent call last): File "/opt/local/lib/python2.5/site-packages/trac/web/main.py", line 406, in dispatch_request dispatcher.dispatch(req) File "/opt/local/lib/python2.5/site-packages/trac/web/main.py", line 237, in dispatch resp = chosen_handler.process_request(req) File "/opt/local/lib/python2.5/site-packages/trac/web/chrome.py", line 226, in process_request in provider.get_htdocs_dirs() if dir == prefix]: AttributeError: 'BatchModifyModule' object has no attribute 'get_htdocs_dirs'