Отдельные директивы безопасности для каждого репозитория в hgweb и Apache
У меня есть несколько репозиториев Mercurial, опубликованных с использованием hgweb и защищенных с помощью Apache 2.2
Есть ли способ иметь несколько конфигураций безопасности?
Я хотел бы иметь конфигурацию по умолчанию для большинства репозиториев, а затем отдельные конфигурации для конкретных репозиториев.
httpd.conf
файл выглядит так
WSGIScriptAlias /hg "C:/hg/hgweb/hgweb.wsgi"
<Directory "/hg/repo_one">
Order deny,allow
AuthType Basic
AuthName "R1 Secure Area"
AuthBasicProvider file
AuthUserFile c:/apache2.2/repo_one.pwd
Require valid-user
</Directory>
<Directory "/hg">
Order deny,allow
AuthType Basic
AuthName "Secure Area"
AuthBasicProvider file
AuthUserFile c:/apache2.2/passwords
Require valid-user
</Directory>
1 ответ
Решение
Вот что я сделал, чтобы заставить это работать.
Я переместил репозиторий, которому требовалась отдельная защита, в его собственный каталог, который был siblng, а не дочерним, и сделал копию hgweb.wsgi.
Моя структура каталогов теперь выглядит так
c:\hg-pub\hgweb.wsgi
c:\hg-pub\hgweb.config
c:\hg-pub\repo-one\.hg
...
c:\hg\hgweb.wsgi
c:\hg\hgweb.config
c:\hg\repo-two\.hg
c:\hg\repo-three\.hg
И мой httpd.conf
файл выглядит так
WSGIScriptAlias /hg "C:/hg/hgweb.wsgi"
WSGIScriptAlias /pub/hg "C:/hg-pub/hgweb.wsgi"
<Directory "C:/hg-pub">
Order deny,allow
AuthType Basic
AuthName "R1 Secure Area"
AuthBasicProvider file
AuthUserFile c:/apache2.2/repo_one.pwd
Require valid-user
</Directory>
<Directory "C:/hg">
Order deny,allow
AuthType Basic
AuthName "Secure Area"
AuthBasicProvider file
AuthUserFile c:/apache2.2/passwords
Require valid-user
</Directory>
Важно отметить, что
- Два хранилища полностью разделены на диске
- Два пути WSGIScriptAlias полностью независимы