Trac Lightingでフォーム認証には問題がある
ユーザーAでログインし、ログアウト後、もう一度ログインをクリックすると、ダイアログが表示されず、ユーザーAでログインしてしまうため、ユーザーを切り替えることができない。
チケット #15012: ログアウトしても別ユーザーでログインできない - Trac Lightning - OSDN
というsf.jpのチケットを読んで、さてここらでフォーム認証についてもう一回語っておくか*1と思い書きかけたのですが、検証してたらTrac LightingでAccountManagerPluginのフォーム認証を利用するには諸処の問題があることが分かりました。
単純に使うのならば、Trac Lightning 2.1の場合、管理 - プラグインのTrac 0.11.2.1.ja1にあるLoginModule(trac.web.auth)のチェックボックスをoffに変更して、
%TRAC_LIGHT_HOME%\CollabNetSVN\httpd\confにあるhttpd.confの509行目辺りからの認証設定をしている以下の部分をコメントアウトするだけで使えます。
AuthType Digest
AuthName trac
AuthUserFile "C:\TracLight\projects\trac.htdigest"
Require valid-user
んがしかし、AccountManagerPluginのフォーム認証を使う場合にはxml-rpcからの認証に不具合(?)がありHttpAuthPluginを利用しないと認証が通りません。だた、これが問題でHttpAuthPluginの認証はBasic認証しか対応してなくて、Trac Lightningの標準設定のDigest認証には対応しておらず、HttpAuthPluginを入れても認証が通りません。
これではTrac Lightning 2.1をインストールして使っている人はフォーム認証とXMLRPCの二択を迫られてしまいます。
というわけでTracでDigest認証を利用している人はフォーム認証が現状では使えないと思った方が良さそうです、残念。*2
*1:以前にXMLRPCとフォーム認証 - almost nearly deadというのを書いてます。