Implementando o pull anônimo, mas o push do usuário verificado via HTTPS

3

Basicamente, como faço isso no Repositório Mercurial?

Atualmente, configurei a Localização no Apache para exigir SSL, usar autenticação básica e exigir usuário válido. Isso é um pouco demais, já que eu quero permitir a captura anônima, apenas requer autenticação básica para os traficantes - agora, usuário / senha são necessários para simplesmente visualizar o repositório em um navegador da web. Eu gostaria de exigir SSL em todos os momentos, e realmente não quero hospedar o mesmo repositório duas vezes (para ter um local diferente para o pull-only, e outro para o push verificado).

    
por user9748 18.06.2009 / 18:07

3 respostas

4

Ches Martin tem um blog legal com detalhes de como ele configurou o Mercurial complete com o que você está pedindo.

<LimitExcept GET>
  require valid-user
</LimitExcept>

Este trecho de uma configuração do Apache é parte do que é necessário para permitir a extração anônima (ou a navegação se publicada via hgweb), mas ainda requer um passe para push.

    
por 19.06.2009 / 13:11
2

O que você está procurando é a diretiva LimitExcept do Apache. Algo como:

<LimitExcept GET>
  Require valid-user
</LimitExcept>

Para que um usuário / passe seja necessário para qualquer outra coisa que não seja uma solicitação GET. Mas eu não conheço o Mercurial e não sei como hg push é feito. Se for uma solicitação POST, será Ok, mas pode ser que o POST também seja solicitado a ser acionado.

    
por 18.06.2009 / 18:27
0

Você está dificultando muito o seu problema, exigindo SSL para o anonimato, e não tenho idéia do que você está querendo fazer com isso. Se alguém conseguir fazer sem autenticação, qualquer um pode ver todos os dados apenas perguntando, fazendo o sniffing do fio completamente redundante, então não adianta criptografá-lo.

Eu recomendo strongmente tomar a rota mais simples de colocar sua distribuição anônima em http e salvar https para pushs.

    
por 26.06.2009 / 21:56