带有 dav_svn 身份验证的 WebSVN

带有 dav_svn 身份验证的 WebSVN

我正在尝试在我的服务器中提供对 WebSVN 的访问权限,但我做不到。目标是仅向登录并拥有该存储库管理员权限的用户显示某些存储库。例如,我有两个存储库,其中一个完全向所有用户开放(repo1),另一个仅限于部分用户(repo2)。所以我的 dav_svn.access 文件是:

[groups]
admins = user1, user2, user3

[repo1:/]
* = r

[repo2:/]
@admins = rw

然后,我的网站有一个 /websvn 资源:

Alias /websvn /var/www/websvn
<Location /websvn>
    SetHandler None
</Location>

<Directory /websvn>
    Order allow,deny
    Allow from all
    DAV svn
    SVNParentPath /var/lib/svn/repos
    SVNAutoversioning on

    AuthzSVNAccessFile /etc/apache2/dav_svn.access
    Satisfy Any
    AuthType Basic
    AuthBasicProvider  ldap-jderobot
    Require valid-user ldap-user

    AuthName "Subversion repo"
    ModMimeUsePathInfo on
</Directory>

在 /var/www/websvn 的 include 目录中的 config.php 文件中,我有:

$config->parentPath('/var/lib/svn/repos/');
$config->useAuthenticationFile('/etc/apache2/dav_svn.access');

但是如果我把自己放入管理员组,无论我是否登录,我都看不到 repo1。登录服务是 LDAP,但这不是问题,因为我在日志文件中看不到任何内容。我正在使用 Debian 6 机器。

你知道我做错了什么吗?还有什么其他方法可以解决我的问题吗?

谢谢!

答案1

我相信,但不确定,WebSVN 无法获取凭据并将其传递给 SVN。相反,WebSVN 被设计为使用其自己的一组凭据与 SVN 服务器通信。

您可能想要做的是设置 WebSVN 的多个副本。一个 WebSVN URL 受密码或 Apache 身份验证保护,允许人们浏览限制性更强的存储库,这个 WebSVN 副本需要配置一个只读密码,以便浏览存储库。

第二个 WebSVN URL 可以更加开放,使用 WebSVN 凭据可以对更多公共存储库进行只读访问。

相关内容