我想在我的Apache服務器上配置一個站點,使用mod_dav_svn和mysql身份驗證。使用Mysql和Apache Subversion訪問控制
我使用一個數據庫三和用表像這樣
auth_users
----------
uid username passwd
1 UserA pass
2 UserB pass
。
auth_groups
-----------
gid group
1 repo_rw
2 repo_ro
。
users_groups
uid gid
1 1
2 2
因此: -
用戶A是組成員repo_rw 用戶B是組的成員repo_ro
然後我用我的httpd.conf文件如下: -
<VirtualHost *:80>
DocumentRoot /var/www
ServerName repo.srv.domain.com
ServerPath /var/www
<Location /svn>
DAV svn
SVNPath /var/svn/repo
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /dev/null
AuthBasicAuthoritative Off
AuthMySQL_Authoritative on
AuthMySQL_Empty_Password off
AuthMySQL_Encryption_Types Plaintext
AuthMySQL_Password_Table "auth_users u"
AuthMySQL_Username_Field "u.username"
AuthMySQL_Password_Field "u.passwd"
AuthMySQL_Group_Table "auth_groups g RIGHT JOIN users_groups ug ON (ug.gid=g.gid) RIGHT JOIN auth_users u ON (ug.uid=u.uid)"
AuthMySQL_Group_Field "g.group"
<Limit GET PROPFIND OPTIONS REPORT>
Require group repo_rw
</Limit>
</Location>
</VirtualHost>
在這種配置中,我能夠讓用戶rw訪問存儲庫/ var/svn/repo,作爲此存儲庫的有效用戶進行身份驗證。
我也可以添加多個VirtualHost條目,將各個位置中的「repo」替換爲新的重新設置名稱,並提供對單個存儲庫的受控rw訪問。
我的問題是,我無法添加READ ONLY訪問存儲庫,也匿名只讀訪問。
我已經讀它應該能夠
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require group repo_ro
</Limit>
添加到部分,這應該提供只讀到存儲庫訪問,但我一直沒能完成這項工作。尾巴mysql日誌只顯示repo_rw被查詢。
如果有人可以提供任何建議,我將非常感激!