Страница 1 из 1
Web_DAV и subbersion
Добавлено: 2014-04-22 15:37:50
kharkov_max
Гопода устал бодаться, помогите.
Собственно имеется сервер subversion apache2 + web_dav + mod_authnz_ldap
На сервере несколько svn репозитариев
В результате необходимо получать ссылку вида
http://mysite.com.ua/svn/repo1 или
http://mysite.com.ua/svn/repo2 и т.д.
В url важно. должно быть
/svn/
Собственно вот так настроиваю virtualhost для одного репозитария:
Код: Выделить всё
<-----><Location /svn/>
<-----><------>DAV svn
<-----><------>SVNParentPath "/usr/home/svn-repository/"
<-----><------>SVNListParentPath On
<-----></Location>
<------><Location /repo1>
<------><------>DAV svn
#<-----><------>SVNParentPath "/usr/home/svn-repository/repo1/"
#<-----><------>SVNListParentPath On
<------><------>SVNPath "/usr/home/svn-repository/repo1"
<------><------>SVNPathAuthz On
<------><------>SVNAutoversioning On
<------><------>AuthType Basic
<------><------>AuthName "SVN authorization"
<------><------>AuthzLDAPAuthoritative On
<------><------>AuthBasicProvider ldap
<------><------>AuthLDAPUrl ldap://gateway.local:389/ou=ldapuser,dc=local?uid?sub?(objectClass=*) NONE
<------><------>AuthLdapGroupAttribute memberUid
<------><------>AuthLDAPGroupAttributeIsDN Off
<------><------># RW group
<------><------><Limit OPTIONS CHECKOUT REPORT GET PROPFIND PROPATCH DELETE MERGE PUT POST MKCOL MKCTIVITY COPY MOVE LOCK UNLOCK>
<------><------><------>Require ldap-group cn=writeaccess,ou=svnaccess,ou=ldapuser,dc=local
<------><------></Limit>
<------><------># RO group
<------><------><Limit GET PROPFIND OPTIONS REPORT>
<------><------><------>Require ldap-group cn=readaccess,ou=svnaccess,ou=ldapuser,dc=local
<------><------></Limit>
<------></Location>
Но !!!
В таком виде svn не запрашивает пароль на repo1, а отдает его всем подряд, т.к. включено SVNParentPath "/usr/home/svn-repository/"
Если коментирую секцию:
Код: Выделить всё
<-----><Location /svn/>
<-----><------>DAV svn
<-----><------>SVNParentPath "/usr/home/svn-repository/"
<-----><------>SVNListParentPath On
<-----></Location>
то как положено (запрашивает логин и пароль) начинает работать по url
http://mysite.com.ua/repo1, но мне критически важно что б url был
http://mysite.com.ua/svn/repo1
Замучался уже, не могу ни как победить ...
Заранее спасибо.
Re: Web_DAV и subbersion
Добавлено: 2014-04-22 15:45:30
FenX
Код: Выделить всё
SVNParentPath "/usr/home/svn-repository/repo1/"
путь к родителю исправь
Re: Web_DAV и subbersion
Добавлено: 2014-04-22 15:52:57
FenX
по путям расположения, не помню уже как оно строится, давно с вебкой и свном не работал,
но вопрос именно в секции Location
либо полный путь от корня указывать надо
либо как вложенные одно в одно.
но, по идеи, правильным должен быть все же первый вариант.
Re: Web_DAV и subbersion
Добавлено: 2014-04-22 16:20:35
kharkov_max
FenX писал(а):Код: Выделить всё
SVNParentPath "/usr/home/svn-repository/repo1/"
путь к родителю исправь
А что тут не верно ?
Просто в данной конфигурации SVNParentPath "/usr/home/svn-repository/repo1/" начинает действовать на подкаталоги и пускает без авторизации, т.е. 2я локация уже не работает.
Почему так х.з., но вот путный пример
http://sshd.su/pages/viewpage.action?pageId=5668930 и тут именно так настраивается (как у меня не работает)
FenX писал(а):по путям расположения, не помню уже как оно строится, давно с вебкой и свном не работал,
но вопрос именно в секции Location
либо полный путь от корня указывать надо
либо как вложенные одно в одно.
но, по идеи, правильным должен быть все же первый вариант.
Так пробовал, при попытке checkout говорить что по пути
http://mysite.com.ua/svn/repo1 нет репозитария
Re: Web_DAV и subbersion
Добавлено: 2014-04-22 17:23:02
kharkov_max
А в самом репозитарии ни чего не может быть ?
К примеру нужно было создавать его не как repo1, а как /svn/repo1 ...
Re: Web_DAV и subbersion
Добавлено: 2014-04-22 18:43:38
kharkov_max
Вообщем победил
Секцию
Код: Выделить всё
<-----><Location /svn>
<-----><------>DAV svn
<-----><------>SVNParentPath "/usr/home/svn-repository"
<-----><------>SVNListParentPath On
<-----></Location>
вообще выкинул.
А остальное модернизировал до такого вида:
Код: Выделить всё
<------><Location /svn/scripts>
<------><------>DAV svn
<------><------>SVNPath "/usr/home/svn-repository/scripts"
<------><------>SVNPathAuthz On
<------><------>SVNAutoversioning On
<------><------>AuthType Basic
<------><------>AuthName "SVN authorization"
<------><------>AuthzLDAPAuthoritative On
<------><------>AuthBasicProvider ldap
<------><------>AuthLDAPUrl ldap://gateway.local:389/ou=ldapuser,dc=local?uid?sub?(objectClass=*) NONE
<------><------>AuthLdapGroupAttribute memberUid
<------><------>AuthLDAPGroupAttributeIsDN Off
<------><------># RW group
<------><------><Limit OPTIONS CHECKOUT REPORT GET PROPFIND PROPATCH DELETE MERGE PUT POST MKCOL MKCTIVITY COPY MOVE LOCK UNLOCK>
<------><------><------>Require ldap-group cn=writeaccess,ou=svnaccess,ou=ldapuser,dc=local
<------><------></Limit>
<------><------># RO group
<------><------><Limit GET PROPFIND OPTIONS REPORT>
<------><------><------>Require ldap-group cn=readaccess,ou=svnaccess,ou=ldapuser,dc=local
<------><------></Limit>
<------></Location>
Важно, не думал что это играет роль но !!!
Обратные слеши в путях Location и SVNPath
Re: Web_DAV и subbersion
Добавлено: 2014-04-23 9:39:13
FenX
SVNParentPath указывает на родительскую диру с репами.
т.е. если репы у тебя лежать по пути /usr/local/svn/repo1(2,3,4...etc)
то SVNParentPath должен быть /usr/local/svn
как-то давно, я рисовал тут статейку по свну с траком в паре
и, если мне память не изменяет, для работы свна достаточно настроить корень,
дальше репозитории будут цепляться нормально.
ну и для каждой репы в отдельности можно уже настраивать авторизацию через Location /path/to/repo
Re: Web_DAV и subbersion
Добавлено: 2014-04-23 10:22:21
kharkov_max
Все работает, и репозитарии цепляются с SVNParentPath, но при такой конфигурации доступом можно рулить только на уровне корня.
А мне нужно было прикрутить к каждому репозитарию свою группу в Ldap
К примеру, один репозитарий пользователь группы 1 может только читать, а другой репозитарий по группе2 может и читать и писать.
Т.е. по сути SVNParentPath, не дает разграничения доступа по репозитариям.
Re: Web_DAV и subbersion
Добавлено: 2014-04-23 17:35:58
FenX
так вроде раньше работало что-то вроде такого варианта:
Код: Выделить всё
<VirtualHost *:80>
ServerName svn.domain.com
ErrorLog "/usr/local/www/apache22/svn-error.log"
CustomLog "/usr/local/www/apache22/svn-access.log" common
<Location /svn>
DAV svn
SVNParentPath /usr/local/www/apache22/svn
</Location>
<Location /svn/repo1>
SVNPathAuthz On
SVNAutoversioning On
AuthType Basic
AuthName "SVN authorization"
AuthzLDAPAuthoritative On
AuthBasicProvider ldap
AuthLDAPUrl ldap://gateway.local:389/ou=ldapuser,dc=local?uid?sub?(objectClass=*) NONE
AuthLdapGroupAttribute memberUid
AuthLDAPGroupAttributeIsDN Off
# RW group
<Limit OPTIONS CHECKOUT REPORT GET PROPFIND PROPATCH DELETE MERGE PUT POST MKCOL MKCTIVITY COPY MOVE LOCK UNLOCK>
Require ldap-group cn=writeaccess,ou=svnaccess,ou=ldapuser,dc=local
</Limit>
# RO group
<Limit GET PROPFIND OPTIONS REPORT>
Require ldap-group cn=readaccess,ou=svnaccess,ou=ldapuser,dc=local
</Limit>
</Location>
</VirtualHost>
если не лениво - проверь

мне сейчас крайне лениво свн разворачивать где-то
еще как-то давно, еще на 1.4 версии свн, работало чтение атрибутики из .htaccess

правда потом что-то поломали и оно перестало работать((
Re: Web_DAV и subbersion
Добавлено: 2014-04-23 17:46:14
kharkov_max
правда потом что-то поломали и оно перестало работать((
Скорее всего поломали второй раз.
Я с конфига который ты предложил начинал ))), и он не работает.
Лепить .htaccess не хочу ...
Re: Web_DAV и subbersion
Добавлено: 2014-04-23 17:57:12
FenX
kharkov_max писал(а):
правда потом что-то поломали и оно перестало работать((
Скорее всего поломали второй раз.
Я с конфига который ты предложил начинал ))), и он не работает.
Лепить .htaccess не хочу ...
htaccess не работает 100% и уже давно, начиная с 1.5 версии...
печально это все...
в очередной раз понимаю, что свн пошел путем: новая версия? давайте все сломаем и сделаем через жопу =\
Re: Web_DAV и subbersion
Добавлено: 2014-04-26 22:26:57
Mikl
а по пути
http://webserver/svn список репо виден?
с правами? т.е. репо виден тому, кому можно?
Re: Web_DAV и subbersion
Добавлено: 2014-04-27 8:42:43
kharkov_max
Нет, список репозитариев не виден.
Учитывая то что я репозитарии паролю, то то что не видно списка меня сильно не расстроило ...
Re: Web_DAV и subbersion
Добавлено: 2014-04-28 22:28:35
FenX
если корень не паролен - список реп не будет работать. это условие с момента реализации данной ф-ции.