代码之家  ›  专栏  ›  技术社区  ›  CodingWolf

TortoiseSVN不要求登录凭据

  •  0
  • CodingWolf  · 技术社区  · 6 年前

    我在我的Raspberry Pi 3上设置了多个托管在Apache2服务器上的存储库,它是由标准svn程序创建的。

    我创建了一个svn\u access\u控制文件,如下所示:

    [/]
    * = r
    
    [repo1:/]
    Niko = rw
    * =
    

    我还使用以下命令创建了多个用户:

    htpasswd -m /etc/apache2/dav_svn.passwd USERNAME
    

    我的dav\u 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时,系统不会提示我登录对话框。它只是跳转到“禁止访问”消息。

    Access to '/svn/repo1' forbidden
    

    已在客户端中清除身份验证数据。

    我必须更改哪些设置才能让TortoiseSVN提示我登录?

    1 回复  |  直到 6 年前
        1
  •  2
  •   Peter Parker    6 年前

    为什么要使用 <LimitExcept> 指令? 你应该说 require valid-user .

    说明:

    LimitExcept告诉服务器,您只需要对“写”访问进行授权,因此Apache不会要求客户端对其进行读访问(SVN读访问由WEBDAV组成,包括以下操作:GET-PROPFIND-OPTIONS REPORT-仅限于您告诉Apache您不需要对…进行限制的操作)。

    所以SVN不向服务器发送用户信息(服务器没有请求),然后SVN模块评估访问权限,并 邦! 您的访问被拒绝。

    改用此配置: <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>