Я пытаюсь настроить сайт на моем сервере Apache, чтобы использовать mod_dav_svn с аутентификацией mysql.Контроль доступа Subversion с использованием Mysql и Apache (mod-dav-svn, mod-auth-sql, apache, mysql)
Я использую базу данных с тремя таблицами, как этот
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
Поэтому: -
UserA является членом группы repo_rw UserB является членом группы 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» в разных местах на новое имя reposiotry и предоставив доступ к отдельным репозиториям с помощью rw.
Моя проблема в том, что я не могу добавить ТОЛЬКО доступ только к репозиториям, а также анонимный доступ для чтения.
Я прочитал это должно быть возможно добавить
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require group repo_ro
</Limit>
к секции и это должно обеспечить доступ только для чтения к хранилищу, однако я не был в состоянии сделать эту работу. В хвосте журнала mysql отображается только запрос repo_rw.
Если кто-нибудь может дать какие-либо советы, я был бы чрезвычайно благодарен!