Trac 使用数据库认证
可以用数据库来进行身份验证吗?在这个安装中,不想使用 .htpasswd 这种认证方式。
我现在用的是 Trac 0.11 和 MySQL 作为数据库。Trac 目前在使用这个数据库,但并没有提供身份验证的功能。
3 个回答
请参考 http://trac-hacks.org/wiki/AccountManagerPlugin
在你的 trac.ini 文件中,做以下设置:
[components]
; 确保启用这个组件
acct_mgr.svnserve.* = enabled
acct_mgr.svnserve.svnservepasswordstore = enabled
; 选择一种哈希方法
acct_mgr.pwhash.htdigesthashmethod = enabled
acct_mgr.pwhash.htpasswdhashmethod = enabled
[account-manager]
password_store = SvnServePasswordStore
password_file = /path/to/svn/repos/conf/passwd
; 选择一种哈希方法
hash_method = HtDigestHashMethod
hash_method = HtPasswdHashMethod
现在,trac 将会使用数据库中的用户信息。
你可以使用 带有会话存储的账户管理插件
这个账户管理插件提供了几个管理用户账户的功能:
- 允许用户注册新账户
- 通过一个HTML表单登录,而不是使用HTTP认证
- 允许已有用户更改密码或删除他们的账户
- 给忘记密码的用户发送新密码
- 管理用户账户
默认情况下,Trac并不自己处理用户登录,而是把这个工作交给了网络服务器。所以,你可以使用很多与Apache相关的选项。比如,你可以考虑使用auth_mysql,这样就可以把用户的登录信息存储在数据库里。
另外,你也可以看看AccountManagerPlugin,这个插件在trac-hacks.org上可以找到。