WebSVN с VisualSVN Server, кто-нибудь получил аутентификацию для работы?

У меня есть VisualSVN Server, установленный на сервере Windows, обслуживающий несколько репозиториев.

Поскольку веб-просмотрщик, встроенный в сервер VisualSVN, является минималистичным браузером для подрывной деятельности, я бы хотел установить WebSVN поверх своих репозиториев.

Проблема, однако, в том, что я не могу заставить работать аутентификацию. В идеале я бы хотел, чтобы моя текущая аутентификация репозитория, указанная в VisualSVN, работала с WebSVN, так что, хотя я вижу все имена репозиториев в WebSVN, я не могу просматривать их без правильных учетных данных.

Посетив кешированную копию самой верхней ссылки в этом запросе Google, вы можете увидеть то, что я нашел до сих пор, что выглядит многообещающим.
(главная страница блога, похоже, была уничтожена, домен самой верхней страницы, о которой я говорю, - the-wizzard.de)

Там я нашел несколько функций php, которые можно было бы привязать к одному из файлов php в WebSVN. Я следил за внесенными там изменениями, но все, что мне удалось сделать, это заставить WebSVN запрашивать у меня имя пользователя и пароль, и что бы я ни вводил, он меня не пропускал.

К сожалению, для меня php и apache - это во многом черная магия.

Итак, кто-нибудь успешно интегрировал WebSVN с репозиториями, размещенными на VisualSVN?

Ответов (5)

Я использую VisualSVN Server и только что установил Trac. Моя цель состояла в том, чтобы получить лучший веб-браузер репозитория, и Trac определенно является одним из лучших, которые я видел для Subversion. Перейдите на http://www.visualsvn.com/server/trac/, установка действительно довольно проста. Да, в Trac есть система отслеживания заявок и вики-система, которую вы, возможно, не ищете, но репозиторий и браузер журналов продают ее для меня.

Теперь я обнаружил, что можно отключить вики и системы отслеживания заявок, которые поставляются с Trac, просто добавив

[components]
trac.ticket.* = disabled
trac.wiki.* = disabled

в конец файла конфигурации trac.ini. Это приводит к тому, что стартовая страница вики выдает ошибку о том, что модуль вики не может быть найден, поэтому вам нужно настроить Trac для открытия либо с временной шкалой (представление журнала), либо с обозревателем репозитория при запуске, снова отредактировав trac.ini, добавив следующие под [trac]заголовком:

для временной шкалы журнала по умолчанию

default_handler = TimelineModule

для браузера репозитория по умолчанию

default_handler = BrowserModule

Если вы ищете браузер репозитория на базе Интернета с более широкими возможностями, чем браузер по умолчанию, и вы используете VisualSVN Server, обновите его до VisualSVN Server 3.2 или новее.

VisualSVN Server имеет богатый веб-интерфейс для репозиториев Subversion . В отличие от WebSVN, встроенный веб-клиент VisualSVN Server работает «из коробки» и не требует от администратора выполнения каких-либо задач по настройке.

Вы можете увидеть живую демонстрацию здесь: http://demo-server.visualsvn.com/!/

Веб-интерфейс пользователя Subversion в VisualSVN Server

Я автор упомянутой вами статьи. Информация, которую я опубликовал, предназначалась только для WebSVN, работающего на IIS. Насколько я понимаю, программное обеспечение должно «просто работать», когда вы используете PHP на Apache, хотя я никогда не устанавливал его в этой среде. Вы пробовали выполнить некоторую "эхо-отладку" (из-за отсутствия лучшего термина), чтобы увидеть, где именно происходит сбой аутентификации?

Я получил аутентификацию WebSVN, работающую с сервером VisualSVN, хотя и с большим количеством собственных настроек взлома / пробных ошибок.

Вот как я это сделал:

  1. Если вы еще этого не сделали, установите PHP вручную, загрузив zip-файл и выполнив онлайн-инструкции по установке php вручную. Я установил PHP в C: \ PHP

  2. Распакуйте папку websvn в C: \ Program Files \ VisualSVN Server \ htdocs \

  3. Выполните шаги по настройке каталога websvn, т.е. переименуйте configdist.php в config и т. Д. Мои репозитории были расположены в C: \ SVNRepositories, поэтому для настройки файла аутентификации я установил строку config.php так: $ config-> useAuthenticationFile ('C: / SVNRepositories / authz'); // Файл глобального доступа

  4. Добавьте в C: \ Program Files \ VisualSVN Server \ conf \ httpd-custom.conf следующее:

# Для PHP 5 сделайте что-то вроде этого:
LoadModule php5_module "c: /php/php5apache2_2.dll"
Приложение AddType / x-httpd-php .php


# настраиваем путь к php.ini
PHPIniDir "C: / php"

<IfModule dir_module>
   DirectoryIndex index.html index.php 
</IfModule>

<Местоположение / websvn />
   Параметры FollowSymLinks
   AuthType Basic
   AuthName "Репозиторий Subversion"
   Требовать действительного пользователя
   AuthUserFile "C: / SVNRepositories / htpasswd"
   AuthzSVNAccessFile "C: / SVNRepositories / authz"
   SVNListParentPath на
   SVNParentPath "C: / SVNRepositories /"
</Location>

Это сработало для меня, и websvn будет показывать только те каталоги, которые разрешены для данного пользователя. Обратите внимание, что для правильной работы вы должны предоставить доступ «Основной уровень» для всех, а затем отключить доступ к определенным подкаталогам для определенных пользователей. Например, у меня есть один пользователь, у которого нет доступа к основному уровню, но есть доступ к подуровню. К сожалению, этот человек ничего не видит в websvn, даже если он напрямую ссылается на filedetails.php для файла, на просмотр которого он имеет право. В моем случае это не имеет большого значения, потому что я все равно не хочу, чтобы он получал доступ к websvn, но это то, что вам нужно знать.

Кроме того, это настраивает сервер для ssl-соединения, поэтому, как только вы его настроите, адресом будет https: // адрес, а не обычный http: //.

Я получил это для работы с аутентификацией Windows (которая на самом деле AuthType VisualSVN) Хитрость заключается в том, чтобы закомментировать svn auth и заменить его тем же текстом аутентификации, что и в основном файле конфигурации. Спасибо Энтони Джонсону за проработку всех остальных деталей.

# For PHP 5 do something like this:
LoadModule php5_module "F:/wamp/bin/php/php5.3.0/php5apache2_2.dll"
AddType application/x-httpd-php .php


# configure the path to php.ini
PHPIniDir "f:/wamp/bin/php/php5.3.0/"

<IfModule dir_module>
   DirectoryIndex index.html index.php 
</IfModule>

#Alias /websvn/ "F:/Program Files/VisualSVN Server/htdocs/websvn-2.3.1/" 

<Location /websvn-2.3.1/>
   Options FollowSymLinks

    AuthName "Subversion Repositories"
    AuthType VisualSVN
    AuthzVisualSVNAccessFile "F:/Repositories/authz-windows"
    AuthnVisualSVNBasic on
    AuthnVisualSVNIntegrated off
    AuthnVisualSVNUPN Off
   Require valid-user


   SVNListParentPath on
   SVNParentPath "f:/Repositories/"
</Location>