1

我想从网络浏览器访问存储库,这样做 -

通过 WebDAV 访问。

密码文件:

    ...
    [users]
    harry = harryssecret
    sally = sallyssecret

...

<VirtualHost remote-ip:81>
    <Location /svn>
      DAV svn
      SVNPath /home/svn
      AuthType Basic
      AuthName "...."
      AuthUserFile /etc/subversion/passwd
      Require valid-user
     </Location> 
</VirtualHost>

然后重启 Apache:

ctlscript.sh restart apache

来自 Windows 主机的请求:

http: //remote-ip:81/svn/test

得到响应:

在此处输入图像描述

输入harryand harryssecret,但我得到:

401:需要授权

此服务器无法验证您是否有权访问所请求的文档。要么您提供了错误的凭据(例如,错误的密码),要么您的浏览器不了解如何提供所需的凭据。

我究竟做错了什么?

4

1 回答 1

0

我究竟做错了什么?

一切,从“不看文档”开始

AuthUserFile 需要标准 Apache 的 passwd 文件,基于路径的 ACL(您尝试将其写入 passwd)需要 LoadModule 中的附加模块和附加指令<Location>,您的 passwd 文件来自 svn://-served repo for svnserve

我的实时系统示例(相关部分)

https.conf

AuthType Basic
AuthBasicProvider file
AuthUserFile ...htpasswd
AuthzSVNAccessFile ...authz

Satisfy Any
Require valid-user
  • 满足+要求 RO 匿名访问 repos
  • 需要有效用户进行身份验证。写访问
  • AuthUserFile - 平面用户列表
  • AuthzSVNAccessFile - 基于路径的 ACL

密码

lazybadger:$apr1$5tg...

(每个用户带有编码的用户名密码的字符串)

授权

[/]
*=r

[Elgg-Russian:/]
@Coders=rw

[Elgg-TranslationRU:/]
@Translators=rw

[Hello:/]
lazybadger=rw

(SVN 位置中的组、子树,从默认访问权限更改)

于 2012-12-09T19:54:17.963 回答