我已经在我的Raspberry Pi 3上的Apache2服务器上设置了多个存储库,由标准的svn程序创建。
我已经创建了一个svn_access_control文件,如下所示:
[/]
* = r
[repo1:/]
Niko = rw
* =
我还使用以下命令创建了多个用户:
htpasswd -m /etc/apache2/dav_svn.passwd USERNAME
我的dav_svn.conf中写有以下几行:
<Location /svn>
DAV svn
SVNParentPath /home/pi/repos
AuthType Basic
AuthName "Subversion Repo"
AuthUserFile /etc/apache2/dav_svn.passwd
AuthzSVNAccessFile /etc/apache2/svn_access_control
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</LimitExcept>
</Location>
然而,当我想在Windows 8.1机器上通过ToirtoiseSVN访问repo1时,我没有提示登录对话框。它只是跳到了禁止访问&#34;消息。
Access to '/svn/repo1' forbidden
已在客户端清除身份验证数据。
为了让TortoiseSVN提示我登录,我需要更改哪些设置?
答案 0 :(得分:2)
为什么使用<LimitExcept>
指令?
你应该说明require valid-user
。
说明:
LimitExcept告诉服务器您只需要授权进行“写入”访问,因此Apache不会要求客户端进行读取访问(SVN读取访问由WEBDAV组成以下操作:获取提议选项报告 - 只是你告诉apache的操作你不需要限制..)。
因此SVN不会向服务器发送用户信息(服务器没有请求它们),然后SVN模块评估访问权限, Bong!您拒绝访问。
请改用此配置:
<Location /svn>
DAV svn
SVNParentPath /home/pi/repos
AuthType Basic
AuthName "Subversion Repo"
AuthUserFile /etc/apache2/dav_svn.passwd
AuthzSVNAccessFile /etc/apache2/svn_access_control
Require valid-user
</Location>