trac忽略svn授权设置

我在Windows上使用VirtualSVN + Trac-plugin进行多项目。 我已经在VirtualSVN中configuration了用户和组,这样只有授权的用户/组才能访问指定的资源。

例如:

  1. Customer1可以访问Repository1和Trac1
  2. Customer2可以访问Repository2和Trac2
  3. 匿名不能访问任何svn存储库。

在我的系统上,一旦Customer2login,他可以访问Repository2,Trac2, 但也可以访问Trac1 。 这不是预期的。

svn的apacheconfiguration部分

<Location /svn> DAV svn SVNListParentPath off SVNParentPath "D:/repos/svn" SVNPathAuthz on AuthName "Subversion Repositories" AuthType Basic AuthBasicProvider file AuthUserFile "D:/repos/svn/htpasswd" AuthzSVNAccessFile "D:/repos/svn/authz" require valid-user </Location> 

Trac的apacheconfiguration部分

 LoadModule python_module "trac/python/mod_python_so.pyd" LoadModule authz_user_module "bin/mod_authz_user.so" <Location /trac> SetHandler mod_python PythonInterpreter main_interpreter PythonHandler trac.web.modpython_frontend PythonOption TracEnvParentDir "d:/repos/trac" PythonOption TracUriRoot /trac AuthName "Trac" AuthType Basic AuthBasicProvider file AuthUserFile "d:/repos/svn/htpasswd" Require valid-user </Location> 

我试图为Trac声明AuthzSVNAccessFile“D:/ repos / svn / authz” 。 但它不能确定地工作。

任何人都可以帮助我做出正确的? 提前致谢。

这个问题可以分为两部分:

1)通过authz文件来限制使用trac浏览svn源文件

你必须告诉trac authz文件的位置。

在d:/repos/trac/tracX/trac.ini中编辑trac.ini文件:

 [trac] authz_file = D:/repos/svn/authz authz_module_name = name_of_the_module_as_in_authz_file_for_this_trac 

2)限制谁可以访问哪个trac。

它与authz文件无关,因为trac没有使用它来授权trac系统。

使用基本身份validation时,您有两个选项:

a)如果用TracEnvParentDir放弃一个configuration并将其更改为两个Location条目,则可以更改Require指令:

 <Location /trac/trac1> [...] Require user Customer1 </Location> <Location /trac/trac2> [...] Require user Customer2 </Location> 

尽pipe如果你有更多的trac是不切实际的。

b)在trac的内部设置适当的权限。 每个用户将能够“login”到所有trac,但不能访问任何东西。

删除通过身份validation的用户的所有权限,并将权限授予适当的用户。 就像是:

 trac-admin d:/repos/trac/trac1 permission remove authenticated * trac-admin d:/repos/trac/trac2 permission remove authenticated * trac-admin d:/repos/trac/trac1 permission add Customer1 TICKET_CREATE TICKET_MODIFY WIKI_CREATE WIKI_MODIFY trac-admin d:/repos/trac/trac2 permission add Customer2 TICKET_CREATE TICKET_MODIFY WIKI_CREATE WIKI_MODIFY 

保持同步authz和trac权限是一个完整的其他问题:)如果你要做很多事情,最好写一些与你的环境完全匹配的自定义脚本来添加和删除权限。