2016-08-19 10 views
1
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 

Windowsサーバでは、SubversionとTracがApache 2.2.23、Subversion 1.7.8をTrac 1.0.9とmod_pythonモジュールでうまくやっていました。 Subversionアクセス制御ファイルで定義されたアクセス制御グループに基づいて、Tracプロジェクトへのアクセスが許可されました。 httpd.confファイル内のAuthzSVNAccessFile変数の設定は、サブバージョンアクセス制御ファイルe:/etc/.svnaccessを指しています。ユーザーがSubversionリポジトリにアクセスした場合、関連するTracプロジェクトにアクセスできます。それ以外の場合、アクセスは拒否されました。Apacheのアップグレード後にTracがSVNアクセス制御のパーミッションに従わない

httpd.confファイルには、以下が含まれていました。

<Location /trac> 
    SVNParentPath e:/svn_repository 
    AuthzSVNAccessFile "E:/etc/.svnaccess" 
    SetHandler mod_python 
    PythonHandler trac.web.modpython_frontend 
    PythonOption TracEnvParentDir e:\trac 
    PythonOption TracUriRoot /trac 
    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> 

私はその後、2.4.23に1.0.2hをApacheの/ SSLをアップグレードする必要がありました。このアップグレードでは、mod_pythonは廃止されましたので、mod_wsgiロードモジュールを使用するように切り替える必要がありました。私はmod_wsgi.soロードモジュールに追加し、設定ファイルを修正してPython関連の設定(AuthzSVNAccessFile設定を保持)を削除し、mod_wsgi情報を追加しました。 httpd.confファイル、Apacheは、アップグレード後

が含まれる:

<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> 

E:/trac/trac.wsgiはそれで次のようにあります。

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) 

なtrac.iniファイル(Beth_testプロジェクト用)には、Apacheアップグレード前と同じ重要なセクションがあります。

[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 

私のディレクターサーバー上のyの構造は次のとおりです。

E:\svn_repository\ 
    Beth_test 
    SVN_test 
E:\trac\ 
    Beth_test 
    SVN_test 

私は、Active Directoryの資格情報を入力した後TracのURLを持ち出すとき、私が記載されている2つのTracのプロジェクトを参照してください。しかし、プロジェクトをクリックすると、SubversionのBeth_testリポジトリに関連付けられているアクセス制御グループに自分のIDを追加していなくても、そのプロジェクトにアクセスできます。 TortoiseSVNでは適切にブロックされていますが、mod_wsgiモジュールを使用してTracを使用すると、誤ってTracプロジェクトにアクセスし、引き続きSubversionソースを参照できます。

ApacheまたはTracのログファイルには何も役立ちません。

Apacheをアップグレードしてmod_pythonからmod_wsgiに切り替えた後、TracがSubversionのアクセス制御のアクセス許可を守らない理由は何ですか?

答えて

0

私はsvnアクセス制御ファイルで再生していましたが、私のIDは管理者グループに属していました。管理グループは、最上位のスラッシュ(/)ディレクトリへのr/wアクセス権を持っていました。したがって、管理グループの各リポジトリで権限を削除していないため、私のIDはすべてのリポジトリにアクセスできました。 adminディレクトリからIDを削除すると、svnとtracの両方がrepoのグループにアクセスを定義しました。

関連する問題