Autenticação no Apache2 com mod_dav_svn

2

Estou tendo problemas para configurar a autenticação no Apache2 para um repositório SVN que está sendo servido usando o mod_dav_svn.

Aqui está minha configuração do Apache para o diretório:

<Location /svn>
    DAV svn
    SVNParentPath /var/svn/repos

    AuthType Basic
    AuthName "Subversion Repository"
    AuthUserFile /etc/apache2/dev.passwd
    Require valid-user
</Location>

Eu posso usar svn com os projetos em /var/svn/repos , então eu sei que o DAV está funcionando, mas quando eu faço svn updates ou commits (ou qualquer coisa), o Apache não pede nenhuma autenticação ... Ele faz exatamente a mesma coisa se as diretivas Auth estão lá ou não.

As permissões no diretório do repositório (e em todos os subdiretórios / arquivos) apenas dão permissão para www-data (o usuário / grupo do Apache2).

Eu também assegurei que todos os módulos relevantes estão habilitados (em particular o mod_auth está habilitado, assim como todos os módulos mod_dav *).

Alguma idéia de por que os comandos svn não estão sendo autenticados?

Obrigado antecipadamente.

    
por Poita_ 12.06.2010 / 13:46

6 respostas

1

Seu cliente do Subversion credenciais em cache ?

    
por 18.06.2010 / 11:41
1

Já tentou criar um não-dav_svn (basicamente um diretório web regular) e verificar se as permissões estão funcionando?

Por exemplo, você pode tentar algo assim:

<Location /test_auth>
    AuthType Basic
    AuthName "TEST TEST TEST"
    AuthUserFile /etc/apache2/dev.passwd
    Require valid-user
</Location>
    
por 16.06.2010 / 19:52
0

Leia isto se ainda não o fez.

Se isso não funcionar ...

Você tem certeza de que não há nenhum arquivo .htaccess. Os arquivos .htpasswd não estão sobrescrevendo a rotina de autenticação no httpd.conf?

O Apache tem um modelo de herança abrangente para permissões que é muito difícil de se acostumar. Se suas permissões estiverem definidas corretamente, elas podem ser bloqueadas por uma configuração inferior na hierarquia ou sobrescrita por algo maior na hierarquia.

Eu gostaria de poder lhe dar uma resposta mais específica, mas minhas incursões no Apache geralmente envolvem eu bater a cabeça contra a parede por alguns dias para acertar.

    
por 15.06.2010 / 23:56
0

Algumas ideias, em ordem de consequências:

  1. Verifique os arquivos de log para ver o que está acontecendo. Talvez isso esclareça o problema.
  2. As alterações na configuração do Apache exigem que você recarregue o Apache. Se você não fizer isso, suas alterações nunca serão necessárias.
  3. Você especificou a autenticação do usuário, mas não a autorização. Faça um svn authz explícito e adicione-o. Não tenho certeza do que o SVN faz na ausência de um arquivo de autorização.
  4. O Ubuntu 10.04 LTS é lançado; Eu recomendaria uma atualização de 8.04 LTS. Isso poderia resolver magicamente o problema, entre atualizações no kernel, no SVN e no apache.
por 17.06.2010 / 23:26
0

Parece que você provavelmente tem algum tipo de configuração sobreposta que está impedindo o SVN de funcionar como esperado.

O que acontece quando você navega em subdiretórios diferentes no repositório com um web browser? Ele sempre pede um nome de usuário / senha? Tente usar o wget ou curl para navegar pelos repositórios a partir da linha de comando. Esses utilitários de linha de comando não mantêm as informações da sessão, para que você possa disparar rapidamente as solicitações para URLs diferentes, usar rapidamente nomes de usuários e senhas diferentes, etc.

Ative o mod_info . mod_info criará uma página (no link por padrão), que combinará toda a sua configuração em detalhes. Isso permite que você veja se arquivos de configuração sobrepostos (por exemplo, os que estão abaixo de /etc/apache2/conf/ e /etc/apache2/conf.d ) estão causando problemas.

O modelo de herança do Apache pode ser difícil de entender às vezes. Eu acho que mod_info pode me ajudar a ver as coisas um pouco mais claramente. A diretiva Satisfy pode ser a culpada.

Certifique-se de restringir mod_info para permitir apenas o acesso do seu endereço IP / rede.

    
por 18.06.2010 / 01:42
0

Outra sugestão, crie um segundo repositório com um caminho de acesso diferente e certifique-se de que essas coisas estejam competentemente fora do namespace do seu primeiro repositório. Isso ajudará a eliminar anomalias sob o repo existente do SVN.

Algo parecido com isto:

<Location /svntest>
    DAV svn
    SVNParentPath /tmp/test/repos

    AuthType Basic
    AuthName "TEST"
    AuthUserFile /tmp/test/test.passwd
    Require valid-user
</Location>

O problema ainda acontece? Em caso afirmativo, seu problema é devido a uma estranheza de configuração no Apache. Se o problema não acontecer, então o problema é devido a um problema de configuração com os repositórios do subversion sob / var / svn / repos.

    
por 18.06.2010 / 01:47