Como configurar os controles de acesso mercurial usando o apache e o hgweb?

3

Eu configurei um repositório do mercurial para ser exibido usando o apache + wsgi + hgweb no OS X.

Agora está completamente aberto para qualquer pessoa que se deparar com meu servidor no número de porta correto ...

Como posso configurá-lo para que apenas pessoas com um par nome de usuário + senha que eu aprovar possam puxar e / ou enviar do repositório?

Eu sei como facilmente conseguir isso usando o ssh, mas neste caso específico o requisito é que a solução não exija a definição de contas de usuário completas na máquina para cada pessoa a quem eu gostaria de dar acesso ao repo.

    
por GJ. 22.02.2011 / 01:55

2 respostas

3

Supondo que você já tenha o VirtualHost e sob ele o diretório para onde você colocou o seu hgweb.wsgi , você precisa adicionar ao diretório:

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

Em seguida, você deve usar a ferramenta htpasswd para criar o hg_passwords_file da seguinte forma:

htpasswd -c hg_passwords_file username

para o primeiro usuário (e insira a senha conforme solicitado).

Para usuários adicionais, omita o -c para adicioná-los ao arquivo, em vez de recriar o arquivo.

    
por 28.02.2011 / 21:59
3

Exemplos de configuração do Apache para autenticação são fornecidos na seção "Adicionando autenticação" do "Publishing Mercurial Repositórios ”. Há exemplos para dois casos usuais (restringindo todo o acesso ou apenas operações de envio) e até mesmo exemplos para o uso das ferramentas htpasswd e htdigest (que são necessárias para manter o arquivo de senha).

O uso de WSGI em vez de CGI simples (ou qualquer outro método) não afeta essa parte da configuração - basta especificar o caminho da URL visível ao usuário na instrução <Location url-path> .

    
por 26.02.2011 / 21:28