Отдельные директивы безопасности для каждого репозитория в 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>

Важно отметить, что

  1. Два хранилища полностью разделены на диске
  2. Два пути WSGIScriptAlias ​​полностью независимы
Другие вопросы по тегам