Trac et l'identification
Trac n'offre pas de zone membre à proprement parlé. Toute personne qui s'identifie à Trac voit son compte automatiquement crée. Il en résulte qu'on peu donc affecter des droits à un compte qui n'a pas encore était crée. Mais alors comment s'authentifier ? C'est justement là la force de Trac : on peut s'identifier par la méthode que l'on souhaite. Dans un premier temps j'étais passé par un htpasswd mais à présent je désire m'authentifier avec l'identifiant et le mot de passe d'un forum FluxBB.
Prérequis
Évidement il vous faudra un Trac et un FluxBB installés et configurés. Il vous faudra aussi, bien évidement, mod_auth_mysql (yum install mod_auth_mysql). Histoire de faire un cliché avant/après, voici la configuration de mon Trac avant la manipulation :
<Location /> SetHandler mod_python PythonHandler trac.web.modpython_frontend PythonOption TracEnv /home/llaumgui/public_html/trac.llaumgui.com/www/ PythonOption TracUriRoot / # "/tmp" should be some writable temporary directory SetEnv PYTHON_EGG_CACHE /tmp # "trac" can be any string, but must be the same for all # Trac instances on the same Apache install PythonInterpreter trac </Location> <Location /login> AuthType Basic AuthName "Connection sur les dev de LLaumgui" AuthUserFile /home/llaumgui/public_html/trac.llaumgui.com/trac.htpasswd Require valid-user </Location>
On y remarque que l'identification se fait au travers du fichier /home/llaumgui/public_html/trac.llaumgui.com/trac.htpasswd.
Connexion
On va maintenant passer à une identification MySQL :
Order deny,allow Deny from all AuthName "Veuillez saisir votre nom d'utilisateur et votre mot de passe Dotclear" AuthType Basic require valid-user Satisfy Any AuthMySQLAuthoritative On AuthMySQLEnable On # On se connecte à la base mon_fluxbb du serveur localhost # Bien sûr l'idéal est qu'apache n'est accès à mon_fluxbb qu'en lecture. AuthMySQLHost localhost AuthMySQLUser apache AuthMySQLPassword mon_mot_de_passe AuthMySQLDB mon_fluxbb # La table contenant la liste des utilisateur dans FluxBB est la table fluxbb_user # Le login correspond à username et le mot de passe à password # Dans FluxBB, les mots de passe sont crypté en sha1 AuthMySQLUserTable fluxbb_user AuthMySQLNameField username AuthMySQLPasswordField password AuthMySQLNoPasswd Off AuthMySQLPwEncryption sha1
On constate que le choix des méthodes d'encryptages est limité à crypt, scrambled, md5, aes et sha1. Il n'est donc malheureusement pas possible de connecter un Trac avec un Dotclear. En effet, pour le cryptage des mots de passe, Dotclear passe par crypt::hmac.
mod_auth_mysql permet aussi des requêtes plus complexes avec des jointures sur d'autres tables et des clauses where, pour plus d'information, la documentation devrait vous aider.