WebSVN - 存储库中路径的身份验证

时间:2010-11-25 18:44:11

标签: svn authentication websvn

我需要简单的'to-the-point'教程或如何使用WebSVN从单个Subversion存储库中实现路径(checkout diretories)的授权。

让我们说存储库是/ svn / repos / r_project 这个回购的两个结账(路径)是/ svn / repos / path1和/ svn / repos / path2 ...... 我想用不同的用户名/密码保护每个路径(目录)。

Subversion和WebSVN安装在Unix Apache(redhat)上。我已经可以看到WebSVN存储库首页中的两个路径 - 没有任何保护,这工作正常。

我知道如何使用.htpasswd保护单个Web索引页面,但是我试图通过WebSVN页面保护存储库中的各个路径的任何内容都失败了。

Tx

[EDIT nov26]

最新情况明确: 路径我有:

Home path in unix: '/var/www/'
Path of WebSVN: '/var/www/websvn2'
Path to repository: '/svn/repos'
Created repository is '/svn/repos/r_project') // so r_project is the repository name 
Two checkout directories of that repository:'/svn/repos/path1' and '/svn/repos/path2'

httpd.conf 中,我有SVN和WEBSVN的位置(我确实有必要的模块):

<Location /repos>
  DAV svn
  SVNParentPath /var/www/svn/repos
  AuthType Basic
  AuthName "Subversion repository"
  AuthUserFile /etc/svn-auth-file
  Require valid-user
</Location>

<Location /websvn210/>
    Options FollowSymLinks
    AuthType Basic
    AuthName "Subversion Repository"
    Require valid-user
    AuthUserFile /etc/svn-auth-file
</Location>

目前,'svn-auth-file'包含一个用户名的密码。放入'/ etc'目录。

在WebSVN的 config.php 文件中,我有:

$config->parentPath("/var/www/svn/repos");  
$config->useAuthenticationFile('/etc/svn-auth-file'); // Global access file

我能够将checkout目录'path1'和'path2'看作是浏览器中文件的常规索引页面(例如:'http:// mydomain / svn / repos / path1')。但是,当我在浏览器中搜索“http:// mydomain / websvn210”时,我只获得登录(ok)而不是WebSVN的空主页 - 也就是说,没有存储库或结帐路径!

这是第一个问题:空白页面。 其次,每个路径都有不同的登录方式。 注意:这些路径(签出)仅用于读取或下载(不从Subversion完成提交)。

感谢。

1 个答案:

答案 0 :(得分:1)

您可能正在寻找' authz '。这是可用的许多tutorials之一。

修改
我认为你把两件不合在一起的东西混合在一起。访问subversion存储库的一种方法是通过WebDAV,这似乎是有效的。另一方面,WebSVN用于存储库浏览。您将无法提交对WebSVN URL的更改。

您的'SVNParentPath'应指向存储库而不是指向WebSVN目录。

SVNParentPath /svn/repos