Apache升级后,Trac不遵循SVN访问控制权限

Apache升级后,Trac不遵循SVN访问控制权限,apache,svn,authorization,mod-wsgi,trac,Apache,Svn,Authorization,Mod Wsgi,Trac,在Windows服务器上,我在运行Apache2.2.23、Subversion1.7.8和Trac1.0.9以及mod_python模块时,Subversion和Trac进行了良好的交互。基于subversion访问控制文件中定义的访问控制组,允许访问Trac项目。httpd.conf文件中authzsvnacessfile变量的设置指向subversion访问控制文件e:/etc/.svnaccess。如果用户有权访问subversion repo,则他们有权访问关联的Trac项目,否则访问

在Windows服务器上,我在运行Apache2.2.23、Subversion1.7.8和Trac1.0.9以及mod_python模块时,Subversion和Trac进行了良好的交互。基于subversion访问控制文件中定义的访问控制组,允许访问Trac项目。httpd.conf文件中authzsvnacessfile变量的设置指向subversion访问控制文件e:/etc/.svnaccess。如果用户有权访问subversion repo,则他们有权访问关联的Trac项目,否则访问将被拒绝

httpd.conf文件包含以下内容:

Platform: Windows Server 2008 R2
Apache 2.2.23 (win32)/SSL 1.0.0j upgrading to Apache 2.4.23 (win32)/SSL 1.0.2h
CollabNet Subversion Client SVNServe 1.7.8
Trac 1.0.9 (win32)
Python 2.7.1
trac.ini文件(用于Beth_测试项目)具有以下关键部分,与Apache升级之前相同:

import os
import trac.web.main
import site

site.addsitedir('e:\Python\Lib\site-packages')

os.environ['PYTHON_EGG_CACHE'] = r'c:\Trac-Python-Egg-Cache'

def application(environ, start_response):
  environ['trac.env_parent_dir'] = r'e:\trac' 
  return trac.web.main.dispatch_request(environ, start_response)
当我在输入active directory凭据后打开Trac url时,我会看到列出的两个Trac项目。但是,当我单击一个项目时,它允许我访问它,即使我没有将我的id添加到与subversion Beth_测试repo关联的访问控制组中。使用TortoiseSVN,我被正确地阻止了,但是使用mod_wsgi模块的Trac,我可以(错误地)访问Trac项目,然后浏览subversion源

Apache或Trac日志文件中没有任何有用的内容


你知道为什么在升级Apache并从mod_python切换到mod_wsgi之后,Trac不再遵循subversion访问控制权限吗?

我一直在玩svn访问控制文件,我的id在admin组中。管理员组具有对顶级斜杠(/)目录的r/w访问权限。因此,我的id可以访问所有存储库,因为我没有删除管理组在每个repo中的权限。一旦我从admin目录中删除了我的id,svn和trac都会遵循repo的组定义的访问权限。

我一直在玩svn访问控制文件,我的id在admin组中。管理员组具有对顶级斜杠(/)目录的r/w访问权限。因此,我的id可以访问所有存储库,因为我没有删除管理组在每个repo中的权限。一旦我从admin目录中删除了我的id,svn和trac都遵循repo的组定义访问权限

<Location /trac>
  SVNParentPath e:/svn_repository
  AuthzSVNAccessFile "E:/etc/.svnaccess"
  AuthType SSPI
  SSPIAuth On
  SSPIOfferSSPI Off
  SSPIAuthoritative On
  SSPIDomain <domaincontroller>
  SSPIOmitDomain Off
  SSPIUsernameCase lower
  SSPIPerRequestAuth On
  SSPIOfferBasic On
  AuthName "UTAS TRAC Login (Use domain\userid format)"
  Require valid-user
</Location>

WSGIScriptAlias /trac e:/trac/trac.wsgi

<Directory "e:/trac">
   WSGIApplicationGroup %{GLOBAL}
   Order deny,allow
   Allow from all
</Directory>
import os
import trac.web.main
import site

site.addsitedir('e:\Python\Lib\site-packages')

os.environ['PYTHON_EGG_CACHE'] = r'c:\Trac-Python-Egg-Cache'

def application(environ, start_response):
  environ['trac.env_parent_dir'] = r'e:\trac' 
  return trac.web.main.dispatch_request(environ, start_response)
 [components]
tracopt.versioncontrol.svn.* = enabled
tracstats.* = enabled

 [repositories]
Beth_test.dir = e:\svn_repository\Beth_test
Beth_test.description = This is the ‘Beth_test’ project repository on the Test svn server.
Beth_test.type = svn
Beth_test.url = https://<my_server>/svn/Beth_test
Beth_test.hidden = true
tsvn = tsvn: Interact with TortoiseSvn

 [trac]
authz_file = E:\etc\.svnaccess
permission_policies = AuthzSourcePolicy, DefaultPermissionPolicy, LegacyAttachmentPolicy
permission_store = DefaultPermissionStore
repository_dir = e:\svn_repository\Beth_test
repository_type = svn
…plus a bunch of other settings
E:\svn_repository\
    Beth_test
    SVN_test
E:\trac\
    Beth_test
    SVN_test