这是我的设置:
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)
- 我不明白为什么身份验证不起作用。
- 我还期待
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 到 FTP http://www.netadmintools.com/art273.html
- 按照以下顺序配置CPAN并安装
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/