Страница 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/"

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

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

Re: Web_DAV и subbersion

Добавлено: 2014-04-22 15:52:57
FenX
по путям расположения, не помню уже как оно строится, давно с вебкой и свном не работал,
но вопрос именно в секции Location
либо полный путь от корня указывать надо

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

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

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

Re: Web_DAV и subbersion

Добавлено: 2014-04-22 16:20:35
kharkov_max
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 нет репозитария

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
если корень не паролен - список реп не будет работать. это условие с момента реализации данной ф-ции.