mysql - Redmine svn 存储库 - 无法从远程进行身份验证

标签 mysql svn redmine

这是我的设置:

Ubuntu 服务器 11.04
Apache 2.2.17
MySQL 5.1.54

RAILS_ENV=production/usr/share/redmine/script/about

About your application's environment
Ruby version              1.8.7 (i686-linux)
RubyGems version          1.3.7
Rack version              1.1
Rails version             2.3.11
Active Record version     2.3.11
Active Resource version   2.3.11
Action Mailer version     2.3.11
Active Support version    2.3.11
Edge Rails revision       unknown
Application root          /usr/share/redmine
Environment               production
Database adapter          mysql
Database schema version   20110511000000

/etc/apache2/sites-available/default

<VirtualHost *:80>
        DocumentRoot /mnt/data/vortex/Dev/Web
        ErrorLog ${APACHE_LOG_DIR}/apache_error.log
        CustomLog ${APACHE_LOG_DIR}/apache_access.log combined
</VirtualHost>

/etc/apache2/sites-available/redmine

DocumentRoot /mnt/data/vortex/Dev/Web/redmine

PassengerDefaultUser www-data
RailsEnv production
RailsBaseURI /redmine

ErrorLog ${APACHE_LOG_DIR}/redmine_error.log
CustomLog ${APACHE_LOG_DIR}/redmine_access.log combined

/etc/apache2/conf.d/redmine-svn.conf

PerlLoadModule Apache::Authn::Redmine
<Location /svn>
        DAV svn
        SVNParentPath "/mnt/data/svn" 

        AuthType Basic
        AuthName Redmine
        Require valid-user

        PerlAccessHandler Apache::Authn::Redmine::access_handler
        PerlAuthenHandler Apache::Authn::Redmine::authen_handler

        RedmineDSN "DBI:mysql:database=redmine_default;host=localhost" 

        RedmineDbUser "redmine" 
        RedmineDbPass "***" 
</Location>

/etc/cron.d/redmine

*/10 * * * * root ruby /usr/share/redmine/extra/svn/reposman.rb --redmine localhost/redmine --svn-dir /mnt/data/svn --owner www-data --url file:///mnt/data/svn --key=***

Redmine 中的一切工作正常,存储库由 reposman 创建,可以从他们的项目页面浏览。 当我尝试通过远程 pc 访问 svn 存储库时出现问题。
如果我输入 svn ls <a href="http://server-ip/svn/prj" rel="noreferrer noopener nofollow">http://server-ip/svn/prj</a>它在不要求登录的情况下向我显示 repo 内容。
svn mkdir <a href="http://server-ip/svn/prj/dir" rel="noreferrer noopener nofollow">http://server-ip/svn/prj/dir</a>相反,它要求输入密码,但当我输入密码时,系统提示我再次登录。第三次尝试后,出现以下错误:

svn: MKACTIVITY di '/svn/test1/!svn/act/25265483-dc10-4e3b-a7a5-a2e5bb84486f': authorization failed: Could not authenticate to server: rejected Basic challenge (http://192.168.1.201)
  1. 我不明白为什么身份验证不起作用。
  2. 我还期待 svn ls 的登录提示命令。

我还检查了 MySQL 服务器上的 session ,当我尝试访问存储库时,我看不到用户“redmine”的任何 session ,因此 Apache/Redmine 似乎甚至没有尝试连接到 MySQL 进行身份验证。 我关注了this guide设置 svn 访问。

有人知道如何解决我的问题吗?

谢谢

最佳答案

我遇到了同样的问题。问题出在使用 LDAP 身份验证的帐户上。如果您创建一个内部帐户并将其作为开发人员添加到项目中,您将能够提交。

要让 Redmine、LDAP 和 SVN 正常工作,您需要将“PerlLoadModule Authen::Simple::LDAP”添加到您的 apache 配置中 如此处所述:
http://www.redmine.org/projects/redmine/wiki/Repositories_access_control_with_apache_mod_dav_svn_and_mod_perl#optional-LDAP-Authentication

你应该在 Ubuntu 上运气更好,但要在我们公司防火墙内的 OpenSUSE 11.3 上安装 Authen::Simple::LDAP,我必须:

cpan> 安装模块::实现

cpan> 安装属性::处理程序

cpan> 安装参数::验证

cpan> 安装 Authen::Simple

cpan> 安装 Authen::Simple::LDAP

  • 在此之后它仍然无法正常工作,所以我开始调试。我安装了 tcpdump 并发现它没有使用配置的端口来进行身份验证。我将 Redmine.pm 从主机名修改为 URL 并修复了它

        # open (LEELOG, ">>/tmp/leelog");
        # print LEELOG "-----------\n";
        # print LEELOG "$rowldap[0]\n";
        # print LEELOG "$rowldap[1]\n";
        # print LEELOG "$rowldap[2]\n";
        # print LEELOG "$rowldap[3]\n";
        # print LEELOG "$rowldap[4]\n";
        # print LEELOG "$rowldap[5]\n";
        # print LEELOG "$rowldap[6]\n";
    
        my $ldap = Authen::Simple::LDAP->new(
            host    =>      ($rowldap[2] eq "1" || $rowldap[2] eq "t") ? "ldaps://$rowldap[0]:$rowldap[1]" : "ldap://$rowldap[0]:$rowldap[1]",
            port    =>      $rowldap[1],
            basedn  =>      $rowldap[5],
            binddn  =>      $rowldap[3] ? $rowldap[3] : "",
            bindpw  =>      $rowldap[4] ? $rowldap[4] : "",
            filter  =>      "(".$rowldap[6]."=%s)"
    

此页面很有帮助:
http://www.rhonabwy.com/wp/2009/12/24/debugging-active-directory-ldap-authentication-in-redmine/

关于mysql - Redmine svn 存储库 - 无法从远程进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7038567/

相关文章:

mysql - SQL查找某个字段中多次出现的情况

svn - 如何从文件夹中删除SVN

project-management - codendi vs redmine vs Retrospectiva vs trac

Redmine:新创建的子项目可以继承父项目的成员吗?

php - 如何将一个表中的用户值查询到列标题并获取标题下的值?

php - 调用 wp-load.php 从主站点上的 Wordpress 博客加载 3 个最近的帖子,现在无法切换回其他数据库

svn - 由于根文件夹被禁止,无法执行对 svn 的提交

linux - Eclipse 不保存 SVN 密码

javascript - 在 Redmine 插件中包含 jquery

mysql - 有没有办法将 EOF 与终端别名结合起来?