[原]svn 集成 redmine 账户验证的终极解决方案

标签: | 发表时间:2013-08-27 21:36 | 作者:lanphaday
出处:http://blog.csdn.net/lanphaday

svn 集成 redmine 账户验证的终极解决方案

赖勇浩( http://laiyonghao.com

动机

对于大部分开发团队来说,一般都需要一套 SCM 系统,通常是 svn + redmine,有些还会有 reviewboard 之类的。
大家当然希望上三套系统就有三套账号密码,那样记忆起来太麻烦了,所以大家都希望有统一的验证方案,当然,LDAP 是一种选择,考虑到它部署起来比较难,成本比较高,一般会选择统一使用其中某一个系统的账户验证。
redmine 是没有办法使用 svn 的账户验证的,所以大家只好选择 svn 使用 redmine 的账户验证。但是新版本 redmine 使用了 salt 字段加密,又是 sha1 算法计算 hMAC,所以 mod_auth_mysql 就挂了。网上能够搜索到的一般有以下几个方案:
1. 给 mod_auth_mysql 打补丁,见: http://www.redmine.org/boards/2/topics/24386?r=39269 。这个补丁在 Ubuntu Server 10.04 个工作得很好,但在 12.04 就不行了。
2. 改 redmine 的代码,把 salt 机制干掉,见: http://www.jiongsun.com/tag/mod_auth_mysql 。一般人不会选择这种不能升级 redmine 的方案。
3. 给 mod_auth_pgsql2 打补丁,再改 redmine 代码,见: http://digzhu.com/redmine+postgresql+svn%20%E5%AE%9E%E7%8E%B0%E7%BB%9F%E4%B8%80%E7%94%A8%E6%88%B7%E7%AE%A1%E7%90%86.html 。一种让人蛋碎的方案。
显然,需要一个不需要改代码的终极解决方案。
另,因为提供了 hook 机制,reviewboard 使用 redmine 的账户验证倒是容易。

redmine-auth

redmine-auth 利用了 apache2 中提供的 AuthProvider 特性和 mod_wsgi WSGIAuthUserScript 特性,编写了一个读取 redmine 账户信息的脚本,实现账户验证。
得益于 redmine-auth 使用了 web.py 的 database orm,只要 web.py 支持的数据库,redmine-auth 都可以读取。所以无论 redmine 使用的是 MySQL 还是 postgresql,甚至是 oracle/mssql/sqlite,都可以无缝地使用 redmine-auth 进行账户验证。

安装

很简单,运行使用:

pip install -U redmine-auth

它会自动安装依赖的 web.py,但是数据库驱动需要你手动安装,比如 MySQLdb 需要你自行安装好。

配置

redmine-auth 提供了一个小程序用以生成 wsgi 验证脚本,运行命令:
redmine-auth -g /opt/redmine_auth.wsgi
回头几个关于 redmine 使用的数据库相关的问题,一个可以运行的 wsgi 脚本就生成到指定的位置了。
然后配置一下你的 apache2 site config 文件。让它看起来像这样:
<VirtualHost *:1081>


<Location />
  DAV svn
  SVNParentPath /opt/svn


  AuthName "Subversion repository"
  AuthType Basic


  AuthBasicProvider wsgi
  WSGIAuthUserScript /opt/redmine_auth.py


  AuthzSVNAccessFile /opt/svn-authz


  Require valid-user


</Location>


</VirtualHost>
其中最重要的是下面这两行:

  AuthBasicProvider wsgi
  WSGIAuthUserScript /opt/redmine_auth.py
  
然后重启你的 apache2 就可以了。

其它

redmine-auth 是一个 MIT 授权的开源项目,主页: https://github.com/laiyonghao/redmine-auth
作者:lanphaday 发表于2013-8-27 21:36:42 原文链接
阅读:204 评论:1 查看评论

相关 [svn redmine 验证] 推荐:

[原]svn 集成 redmine 账户验证的终极解决方案

- - 赖勇浩的编程私伙局
svn 集成 redmine 账户验证的终极解决方案. 赖勇浩( http://laiyonghao.com). 对于大部分开发团队来说,一般都需要一套 SCM 系统,通常是 svn + redmine,有些还会有 reviewboard 之类的. 大家当然希望上三套系统就有三套账号密码,那样记忆起来太麻烦了,所以大家都希望有统一的验证方案,当然,LDAP 是一种选择,考虑到它部署起来比较难,成本比较高,一般会选择统一使用其中某一个系统的账户验证.

[原]jenkins 集成 redmine 账户验证的方案

- - 赖勇浩的编程私伙局
jenkins 集成 redmine 账户验证的方案. 赖勇浩( http://laiyonghao.com). Jenkins 是最著名的持续集成工具,又因为它开源免费、插件众多,成为了许多团队做持续集成的首选. Jenkins 本身支持多种账户验证方案,但最棒的是它支持验证插件,可以把账户验证的工作完全托管给插件,这就为它支持更多的账户验证方案提供了无限可能.

架设SVN服务器并自动同步和验证注释

- - 操作系统 - ITeye博客
搭建SVN服务,有效的管理代码,以下三步可以快速搞定. 有了SVN软件后还需要建立SVN库. 执行上面的命令后,自动在repos下建立多个文件, 分别是conf, db,format,hooks, locks, README.txt.      上面的操作很简单,几个命令就搞定, 下面的操作也不难.

redmine 插件管理

- - 研发管理 - ITeye博客
work Time_工数管理. Knowledgebase_知识库. Timesheet_时间管理. Screenshot Paste_截屏. 参考: http://wmcxy.blog.51cto.com/2509483/842296. 已有 0 人发表留言,猛击->> 这里<<-参与讨论.

windows 安装redmine 详解

- - CSDN博客研发管理推荐文章
         最近公司有需要,要找一个项目管理工具,网上看了redmine还不错,最终项目经理选择了它,让我把平台给搭建起来并熟悉其中的功能. 搭建的过程中超过了我的预计还破费了点功夫,他是ruby语言. 我也不懂,根据网上的一个安装教程来运行不是报这个错就是报那个错,关键也看不懂撒,郁闷. 没一次成功的,最后终于在一篇博客上给我试成功了,特此给有需要的童鞋们一个参考,免得走弯路,费时又费力.

Redmine Backlog tracker注意事项

- - CSDN博客研发管理推荐文章
最重要的,story和task的tracker不能相同. 否则在taskboard中会将task和story并列显示,尽管它们是父子关系. 因此比较好的做法是,story使用redmine默认的tracker:Support, Bug 和Feature. 而另外创建一些tracker用来跟踪task.

svn 钩子开启

- - 运维技术的个人空间
背景: 公司的Svn很多人在用,有不少人在作修改后不添加注释,所以需要强制用户填写注释. 重命名svn主目录中hooks的pre-commit.tmpl文件为pre-commit,并添加可执行权限. echo "【注释】$content" 1>&2. echo "【注意】注释不能为空,请重新填写注释!!!" 1>&2.

SVN强制填写日志

- - CSDN博客系统运维推荐文章
在F:\Repositories\版本库名\hooks下新建pre-commit.bat. rem 保证输入8个字符 %SVN_BINDIR%\svnlook log %REPOS% -t %TXN% | findstr "........" > nul if %errorlevel% gtr 0 goto :err_action rem 过滤空格字符 %SVN_BINDIR%\svnlook log %REPOS% -t %TXN% | findstr /ic:".

SVN之使用原则

- - 研发管理 - ITeye博客
以下是我起草的部门SVN规范里原则的一部分. 必须提交注释,注明相关修改信息,例如bug号、任务描述等. 具体内容可采用约定或者设置的形式. 你所提交的改变将体现给其他开发者,要明白提交的后果,. 代码变动及时提交,避免丢失本地修改后无法恢复. 新增加的文件同时被提交,否则只在你本地能正常工作,导致其它人不能编译通过.

使用VisualSVN Server搭建SVN服务器

- - CSDN博客推荐文章
使用 VisualSVN Server来实现主要的 SVN功能则要比使用原始的 SVN和 Apache相配合来实现源代码的 SVN管理简单的多,上手也没有那么复杂. VisualSVN Server的下载地址如下,是免费的,随意不必有顾虑. 1使用SVN,首先要安装 TortoiseSVN,就是上面的SVN下载地址.