Web_DAV и subbersion

Проблемы с установкой, настройкой и работой системных и сетевых программ.

Модераторы: GRooVE, alexco

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
kharkov_max
капитан
Сообщения: 1862
Зарегистрирован: 2008-10-03 14:56:40

Web_DAV и subbersion

Непрочитанное сообщение kharkov_max » 2014-04-22 15:37:50

Гопода устал бодаться, помогите.

Собственно имеется сервер 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

Замучался уже, не могу ни как победить ...
Заранее спасибо.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
FenX
ст. прапорщик
Сообщения: 513
Зарегистрирован: 2008-04-23 17:46:53
Откуда: Moscow
Контактная информация:

Re: Web_DAV и subbersion

Непрочитанное сообщение FenX » 2014-04-22 15:45:30

Код: Выделить всё

SVNParentPath "/usr/home/svn-repository/repo1/"

Код: Выделить всё

SVNPath "/usr/home/svn-repository/repo1"
путь к родителю исправь

Аватара пользователя
FenX
ст. прапорщик
Сообщения: 513
Зарегистрирован: 2008-04-23 17:46:53
Откуда: Moscow
Контактная информация:

Re: Web_DAV и subbersion

Непрочитанное сообщение FenX » 2014-04-22 15:52:57

по путям расположения, не помню уже как оно строится, давно с вебкой и свном не работал,
но вопрос именно в секции Location
либо полный путь от корня указывать надо

Код: Выделить всё

<Location /svn/repo1>
либо как вложенные одно в одно.

но, по идеи, правильным должен быть все же первый вариант.

Аватара пользователя
kharkov_max
капитан
Сообщения: 1862
Зарегистрирован: 2008-10-03 14:56:40

Re: Web_DAV и subbersion

Непрочитанное сообщение kharkov_max » 2014-04-22 16:20:35

FenX писал(а):

Код: Выделить всё

SVNParentPath "/usr/home/svn-repository/repo1/"

Код: Выделить всё

SVNPath "/usr/home/svn-repository/repo1"
путь к родителю исправь
А что тут не верно ?
Просто в данной конфигурации SVNParentPath "/usr/home/svn-repository/repo1/" начинает действовать на подкаталоги и пускает без авторизации, т.е. 2я локация уже не работает.
Почему так х.з., но вот путный пример http://sshd.su/pages/viewpage.action?pageId=5668930 и тут именно так настраивается (как у меня не работает)
FenX писал(а):по путям расположения, не помню уже как оно строится, давно с вебкой и свном не работал,
но вопрос именно в секции Location
либо полный путь от корня указывать надо

Код: Выделить всё

<Location /svn/repo1>
либо как вложенные одно в одно.

но, по идеи, правильным должен быть все же первый вариант.
Так пробовал, при попытке checkout говорить что по пути http://mysite.com.ua/svn/repo1 нет репозитария

Аватара пользователя
kharkov_max
капитан
Сообщения: 1862
Зарегистрирован: 2008-10-03 14:56:40

Re: Web_DAV и subbersion

Непрочитанное сообщение kharkov_max » 2014-04-22 17:23:02

А в самом репозитарии ни чего не может быть ?
К примеру нужно было создавать его не как repo1, а как /svn/repo1 ...

Аватара пользователя
kharkov_max
капитан
Сообщения: 1862
Зарегистрирован: 2008-10-03 14:56:40

Re: Web_DAV и subbersion

Непрочитанное сообщение kharkov_max » 2014-04-22 18:43:38

Вообщем победил

Секцию

Код: Выделить всё

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

Аватара пользователя
FenX
ст. прапорщик
Сообщения: 513
Зарегистрирован: 2008-04-23 17:46:53
Откуда: Moscow
Контактная информация:

Re: Web_DAV и subbersion

Непрочитанное сообщение FenX » 2014-04-23 9:39:13

SVNParentPath указывает на родительскую диру с репами.
т.е. если репы у тебя лежать по пути /usr/local/svn/repo1(2,3,4...etc)
то SVNParentPath должен быть /usr/local/svn

как-то давно, я рисовал тут статейку по свну с траком в паре
и, если мне память не изменяет, для работы свна достаточно настроить корень,
дальше репозитории будут цепляться нормально.
ну и для каждой репы в отдельности можно уже настраивать авторизацию через Location /path/to/repo

Аватара пользователя
kharkov_max
капитан
Сообщения: 1862
Зарегистрирован: 2008-10-03 14:56:40

Re: Web_DAV и subbersion

Непрочитанное сообщение kharkov_max » 2014-04-23 10:22:21

Все работает, и репозитарии цепляются с SVNParentPath, но при такой конфигурации доступом можно рулить только на уровне корня.
А мне нужно было прикрутить к каждому репозитарию свою группу в Ldap

К примеру, один репозитарий пользователь группы 1 может только читать, а другой репозитарий по группе2 может и читать и писать.
Т.е. по сути SVNParentPath, не дает разграничения доступа по репозитариям.

Аватара пользователя
FenX
ст. прапорщик
Сообщения: 513
Зарегистрирован: 2008-04-23 17:46:53
Откуда: Moscow
Контактная информация:

Re: Web_DAV и subbersion

Непрочитанное сообщение FenX » 2014-04-23 17:35:58

так вроде раньше работало что-то вроде такого варианта:

Код: Выделить всё

<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 :)
правда потом что-то поломали и оно перестало работать((

Аватара пользователя
kharkov_max
капитан
Сообщения: 1862
Зарегистрирован: 2008-10-03 14:56:40

Re: Web_DAV и subbersion

Непрочитанное сообщение kharkov_max » 2014-04-23 17:46:14

правда потом что-то поломали и оно перестало работать((
Скорее всего поломали второй раз.
Я с конфига который ты предложил начинал ))), и он не работает.
Лепить .htaccess не хочу ...

Аватара пользователя
FenX
ст. прапорщик
Сообщения: 513
Зарегистрирован: 2008-04-23 17:46:53
Откуда: Moscow
Контактная информация:

Re: Web_DAV и subbersion

Непрочитанное сообщение FenX » 2014-04-23 17:57:12

kharkov_max писал(а):
правда потом что-то поломали и оно перестало работать((
Скорее всего поломали второй раз.
Я с конфига который ты предложил начинал ))), и он не работает.
Лепить .htaccess не хочу ...
htaccess не работает 100% и уже давно, начиная с 1.5 версии...
печально это все...
в очередной раз понимаю, что свн пошел путем: новая версия? давайте все сломаем и сделаем через жопу =\

Mikl
мл. сержант
Сообщения: 131
Зарегистрирован: 2010-08-06 6:52:24
Откуда: замкадыш

Re: Web_DAV и subbersion

Непрочитанное сообщение Mikl » 2014-04-26 22:26:57

а по пути http://webserver/svn список репо виден?
с правами? т.е. репо виден тому, кому можно?

Аватара пользователя
kharkov_max
капитан
Сообщения: 1862
Зарегистрирован: 2008-10-03 14:56:40

Re: Web_DAV и subbersion

Непрочитанное сообщение kharkov_max » 2014-04-27 8:42:43

Нет, список репозитариев не виден.

Учитывая то что я репозитарии паролю, то то что не видно списка меня сильно не расстроило ...

Аватара пользователя
FenX
ст. прапорщик
Сообщения: 513
Зарегистрирован: 2008-04-23 17:46:53
Откуда: Moscow
Контактная информация:

Re: Web_DAV и subbersion

Непрочитанное сообщение FenX » 2014-04-28 22:28:35

если корень не паролен - список реп не будет работать. это условие с момента реализации данной ф-ции.