Redmine svn存储库 - 无法从远程验证

时间:2011-08-12 10:05:08

标签: mysql svn redmine

这是我的设置:

Ubuntu Server 11.04
Apache 2.2.17
MySQL 5.1.54

RAILS_ENV =生产/ 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的/位点可用/默认

<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的/位点可用的/管理平台

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 repo时出现问题 如果我输入svn ls http://server-ip/svn/prj,它会在不要求登录的情况下向我显示回购内容 使用svn mkdir http://server-ip/svn/prj/dir而不是它要求输入密码,但当我输入密码时,系统会提示我再次登录。第三次尝试后,我得到以下错误:

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命令的登录提示。
  3. 我还检查了MySQL服务器上的会话,当我尝试访问存储库时,我看不到用户'redmine',因此似乎Apache / Redmine甚至没有尝试连接到MySQL进行身份验证。 我按照this guide设置了svn访问权限。

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

    谢谢

2 个答案:

答案 0 :(得分:0)

我有同样的问题。问题出在使用LDAP身份验证的帐户上。如果您创建内部帐户并以开发人员的身份将其添加到项目中,则可以提交。

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

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

CPAN&GT;安装Module :: Implementation

CPAN&GT;安装Attribute :: Handlers

CPAN&GT;安装Params :: Validate

CPAN&GT;安装Authen :: Simple

CPAN&GT;安装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/

答案 1 :(得分:0)

在我的情况下,我只是取消点击设置 - 信息 - 公共,它的工作原理!公共项目不需要auth,我也无法提交。

我没有使用LDAP。