我遇到了一个奇怪的身份验证问题,该问题与 Subversion(Apache 充当服务器)与 Redmine 的集成有关。
我尝试了所有我能想到的方法,但都不起作用(我找不到这个问题的确切原因)。
配置如下:
<Location />
DAV svn
LimitXMLRequestBody 0
SVNPathAuthz off
SVNParentPath "/srv/svn"
SVNListParentPath off
AuthType Basic
AuthName "Repository"
PerlAccessHandler Apache::Authn::Redmine::access_handler
PerlAuthenHandler Apache::Authn::Redmine::authen_handler
RedmineDSN "DBI:mysql:database=redmine;host=repository.host.tld"
RedmineDbUser "redmine_user"
RedmineDbPass "redmine_pass"
Require valid-user
Order allow,deny
Allow from 192.168.3.0/24 x.x.x.x
Satisfy all
</Location>
如果我尝试从内联网(192.168.3.0/24)访问存储库(进行读/写),一切都会按预期正常工作,但是当我从外部地址(xxxx)尝试执行相同操作时,出现以下错误:
正在更新‘.’:
svn: E175002: Unable to connect to a repository at URL 'http://repository.host.tld/repo'
svn: E175002: Unexpected HTTP status 500 'Internal Server Error' on '/repo'
svn: E175002: Additional errors:
svn: E175002: OPTIONS request on '/repo' failed: 500 Internal Server Error
Apache 在错误日志中报告以下内容:
AuthUserFile not specified in the configuration
就像我说的,我尝试了网上建议的所有方法,除了设置之外,没有任何效果满足任何。将 Satisfy 设置为 any 对我来说是一个非常糟糕的主意,因为在某些情况下会禁用身份验证和授权(http://httpd.apache.org/docs/2.2/mod/core.html#satisfy)。
Redmine 版本为:2.5.1(2014-03-29)(稳定)
Subversion 版本为:1.7.0
Apache 版本为:Apache/2.2.22
任何建议都将不胜感激。谢谢!
答案1
AuthUserFile /dev/null
您的位置配置中缺少参数。