Nginx: Ativação / Desativação Seletiva da Autenticação Baseada no Domínio

1

Eu corro o SugarCRM em uma pilha LEMP e fecho com o auth_basic. Isso funciona bem, os cabeçalhos mostram:

WWW-Authenticate:
Basic realm="Username and Password are required"

Alguns arquivos dentro do SugarCRM têm seus próprios comandos de autenticação http através do PHP, por exemplo, ical_server.php, que mostra em seus cabeçalhos:

WWW-Authenticate:
Basic realm="SugarCRM iCal"
X-Dav-Powered-By:
PHP class: HTTP_WebDAV_Server_iCal

Eu estou tentando ignorar auth_basic para este arquivo, ou pelo menos meu próprio reino, o primeiro mostrado acima.

location = /ical_server.php {
       auth_basic "off";
}

No entanto, isso desativa os dois domínios. Em outras palavras, ele desliga o auth_basic completamente, indiscriminadamente.

Existe uma maneira de desativar seletivamente um domínio de autenticação básica http de sua escolha? A documentação do Nginx parece sugerir que não há, se isso é verdade, então existe outra maneira, talvez indireta, de conseguir isso?

Como um regex para ligar o meu reino em primeiro lugar?

Pseudocódigo:

location != /ical_server.php {
auth_basic "Username and Password are required";
auth_basic_user_file /var/web/webaddress.tld/private/.htpasswd;

}

Embora eu não ache que a correspondência negativa seja possível.

Alguma idéia?

    
por JayMcTee 15.04.2015 / 15:50

1 resposta

0

Você pode definir dois locais:

location /ical_server.php {

}
location / {
        auth_basic "Username and Password are required";
        auth_basic_user_file /var/web/webaddress.tld/private/.htpasswd;
}
    
por 15.04.2015 / 16:08