webdav+ext base.auth+var=error

Maxim Dounin mdounin at mdounin.ru
Mon Apr 13 20:18:53 UTC 2015


Hello!

On Mon, Apr 13, 2015 at 01:32:44PM -0400, itcod wrote:

> Максим добрый день. Вы были абсолютно правы. В процессе написания
> аутентификатора на lua выяснил, что если переменные (например
> $file_password) создается в location / то при работе из WEBDAV клиентов они
> не обрабатываются и остаются пустыми. Видимо это жучёк в nginx.
> Вот так не работает:
> server {
> ...
> 
> location / {
> set $file_password $dir/$1;
> ...
> }}
> 
> А если их глобально вынести выше описания location в секцию server то они
> заполняются (не пусты).
> Вот так работает:
> server {
> ...
> set $file_password $dir/$1;
> 
> location / {
> ...
> }}

При этом в "location /" ипользуется limit_except, правильно?

Выглядит как багофича limit_except в сочетании с rewrite'ами, 
директивы rewrite не выполняются для "лимитированных" запросов.  
Наверное, это имеет смысл поправить.

> И кстати при работе с WEBDAV, аутентификация через дополнительный реквест
> /auth у меня ни разу не сработала... много проверил вариаций.... гдето в
> инете вычитал, что это ошибка в nginx и патч видел для nginx.... но мне
> такой вариант не понравился.

Повторюсь: если показать конфигурацию - больше шансов, что помогут 
найти проблему.

Единственная известная мне проблема, проявлявшаяся при 
взаимодействии dav'а и auth_request'а - исправлена больше двух лет 
назад, в nginx 1.3.9.

-- 
Maxim Dounin
http://nginx.org/



Подробная информация о списке рассылки nginx-ru