Назад | Перейти на главную страницу

Как настроить ртутный контроль доступа с помощью apache и hgweb?

Я настроил ртутное репо для обслуживания с использованием apache + wsgi + hgweb в OS X.

Теперь он полностью открыт для всех, кто наткнется на мой сервер с правильным номером порта ..

Как я могу настроить его так, чтобы только люди с парой имя пользователя + пароль, которую я одобряю, могли извлекать и / или нажимать из репо?

Я знаю, как очень легко добиться этого с помощью ssh, но в этом конкретном случае требуется, чтобы решение не требовало определения полных учетных записей пользователей на машине для каждого человека, которому я хотел бы предоставить доступ к репо.

Примеры конфигурации Apache для аутентификации приведены в Раздел «Добавление аутентификации» документа «Публикация Mercurial Repositories». Есть примеры для двух обычных случаев (ограничение любого доступа или просто операции push) и даже примеры использования htpasswd и htdigest инструменты (которые необходимы для поддержки файла паролей).

Использование WSGI вместо простого CGI (или любого другого метода) не влияет на эту часть настройки - просто укажите видимый для пользователя путь URL-адреса в поле <Location url-path> заявление.

Предполагая, что у вас уже есть VirtualHost и под ним каталог, в котором вы разместили свой hgweb.wsgi, вам необходимо добавить в этот каталог следующее:

AuthType Basic
AuthName "Mercurial Repositories Restricted Access"
AuthUserFile /path/to/hg_passwords_file
Require valid-user

Затем вы должны использовать htpasswd инструмент для создания hg_passwords_file вот так:

htpasswd -c hg_passwords_file username

для первого пользователя (и введите пароль по запросу).

Для дополнительных пользователей опустите -c чтобы добавить их в файл вместо его повторного создания.