无法在subversion中设置基于path的身份validation

我已经无数次地遵循了颠覆性的书,试图在我们的Subversion服务器上设置正确的path授权,但是我一直无法做到这一点。 这是我的访问规则文件:

[groups] sales-admin = alexa, miked, chrism [/] $authenticated = rw [Product_Sales:/] ~@sales-admin = 

这个应该做的就是让所有通过authentication的用户访问这个服务器上托pipe的每个存储库,但是限制Product_Sales存储库对销售pipe理员组的读写权限。 但是,实际情况并非如此,我的权限都没有正常工作。 以下是在每个用例中发生的事情:

  1. 当我尝试更新,提交或从任何其他仓库签出时,我得到一个“访问被禁止”的错误,即使从TortoiseSVN清除我保存的凭据没有给予任何选项进行身份validation。

  2. $authentication令牌不起作用。 如果我用“* = rw”replace“$ authenticated = rw”,我又重新获得访问权限,但是我不再要求login,即使我没有提供任何凭证。 尝试提交确实强制我login,但是我需要在与存储库进行交互(包括只读操作)时始终进行身份validation。

  3. 即使我在服务器的根目录中设置了* = rw,在Product_Sales存储库上设置权限也不会让我访问Product_Sales。

我需要知道我的访问规则有什么问题。 过去几年来,我已经尝试过几次使path授权工作,但是无济于事。 如果有人能帮我一把,我会很感激的。 我只是想知道我在Subversion书中对基于path的authentication解释有什么误解。

http://svnbook.red-bean.com/en/1.7/svn.serverconfig.pathbasedauthz.html

编辑 :这是我的颠覆服务器信息

Collabnet Subversion Edge 3.2.2-3395.103

Subversion 1.7.8-3395.103

我还没有确定的答案,但只有一些想法

如果我用“* = rw”replace“$ authenticated = rw”,我又重新获得访问权限,但是我不再要求login,即使我没有提供任何证书

* = rw意思是“每个人都可以读写”,每个人都是“甚至是匿名的”。 你有基于Apache或svnserve的SVN服务器? 在Apache的情况下,您必须(在Apachepath访问之前,必须限制对存储库的访问)

而且,顺便说一句,魔术令牌适用于SVN 1.5+(有任何机会有更旧的版本?)

更新

debugging过程

  • 获得“只authentication”访问您的所有回购(匿名甚至无法读取)。 对于httpd.conf中与svn相关的位置,它将是(最小版本,基本authentication – 不好)

DAV svn

SVNListParentPath on

SVNParentPath ...

AuthName ...

AuthType Basic

AuthBasicProvider file

AuthUserFile ...

# AuthzSVNAccessFile ...

Require valid-user

在这个configuration中, 只有 AuthUserFile中列出的用户才能完全访问任何回购,回购的任何部分

  • 添加基于path的检查,取消注释AuthzSVNAccessFile。 由于使用configuration匿名用户将不会有任何回购的访问, $authenticated令牌变得过度,$authentication== *在这个禁区

  • 对于[Product_Sales:/]规则“只有一个组有访问权限”,我更喜欢防弹重载的定义

[Product_Sales:/]

* =

@sales-admin = rw

也就是说,所有访问都被明确禁用,只有一个组在同一显式样式中被启用