У меня есть сервер Subversion, работающий с Apache. Он аутентифицирует пользователей, использующих LDAP в конфигурации Apache, и использует полномочия SVN для ограничения доступа пользователей к определенным репозиториям. Это отлично работает.
Apache
DAV svn
SVNParentPath /srv/svn
SVNListParentPath Off
SVNPathAuthz Off
AuthType Basic
AuthName "Subversion Repository"
AuthBasicProvider ldap
AuthLDAPBindDN # private stuff
AuthLDAPBindPassword # private stuff
AuthLDAPURL # private stuff
Require valid-user
AuthzSVNAccessFile /etc/apache2/dav_svn.authz
* 1006 Subversion *
[groups]
soft = me, and, all, other, developpers
Добавление анонимного доступа с одного компьютера
Теперь у меня есть служба, которую я хочу настроить (rietveld, для проверки кода), которая должна иметь анонимный доступ к хранилищу. Поскольку это веб-сервис, доступ всегда осуществляется с одного и того же сервера. Таким образом, я добавил конфигурацию apache, чтобы разрешить все доступы с этой машины. Это не работало, пока я не добавил дополнительную строку в файл авторизации, чтобы разрешить доступ на чтение всем пользователям.
Apache
<Limit GET PROPFIND OPTIONS REPORT>
Order allow,deny
Allow from # private IP address
Satisfy Any
</Limit>
1018 * Subversion *
[Software:/]
@soft = rw
* = r # <-- This is the added line
Например, перед тем, как добавить авторизацию с определенного IP-адреса, все пользователи прошли аутентификацию и, таким образом, получили имя. Теперь некоторые обращения осуществляются без имени пользователя! Я нашел имя пользователя -
в файлах журнала apache, но строка - = r
не работает, как и anonymous = r
. Я не хотел бы разрешать доступ на чтение всем, кто авторизован в SVN. Как я могу это сделать?