Autenticação básica NGINX somente para POST

7

Estou configurando o nginx para servir repositórios do Mercurial. Ele funciona quando você não usa autenticação básica, ou quando eu uso autenticação básica em todo lugar.

O que eu quero fazer é usar apenas a autenticação básica em solicitações POST, para que qualquer pessoa tenha acesso, mas somente usuários autenticados podem enviar.

Eu tentei o seguinte,

if ($request_method = POST) {
  auth_basic "Restricted";
  auth_basic_user_file /path/to/userfile
}

No entanto, reclama que "a diretiva auth_basic não é permitida aqui".

Como posso resolver isso?

    
por Adrian Heine 01.04.2010 / 19:05

1 resposta

10

Você deve usar limit_except :

limit_except GET HEAD {
    auth_basic 'Restricted';
    auth_basic_user_file /path/to/userfile;
}

Funciona desde o nginx 0.8.48, em versões mais antigas havia um bug em que fastcgi_pass não era herdado dentro do bloco limit_except.

    
por 12.03.2011 / 14:47