auth_request, HTTP 401 иотсутствующийхедер WWW-Authenticate

Pavel Kolla pavelkolla на gmail.com
Вт Фев 1 18:32:52 MSK 2011


Доброе время суток...

Столкнулся с проблемой, к сожалению, превышающей мои возможности -

Я использую nginx для имплементации ауфентикационной части некого клиент-
серверного бизнес приложения ориентированного на веб. Аутентификация происходит 
посредством ngx_postgress и вроде как, с точки зрения логики, решение вполне 
функционально и работоспособно с данной конфигурацией: http://dpaste.com/
hold/374783/

Проблема с которой я столкнулся связана (по моему мнению) с модулем 
auth_request и выражается в отсутствующем "WWW-Authenticate" хедере в ответе на 
первоначальный запрос, требуемым для инициализации процесса на клиенте. В моём 
случае auth_request не только сам не посылает этот хедер, но и не предполагает 
возможность дорисовать его в ручную (и даже если то было бы возможно - 
auth_request игнорирует if директивы в том же контекстном блоке, лишая 
возможности анализировать запрос и дорисовывать "WWW-Authenticate" хедер только 
в тех случаях, когда клиент уже предоставляет аутефикационную информацию в виде 
"Authenticate:" хедера)

Ещё одна иллюстрация той же проблемы для банального HTTP 401 ответа:

 $ curl -I  http://pkolla:88/t1/
HTTP/1.1 200 OK
Server: nginx/0.8.54
Date: Tue, 01 Feb 2011 14:15:31 GMT
Content-Type: application/octet-stream
Transfer-Encoding: chunked
Connection: keep-alive
Keep-Alive: timeout=20
WWW-Authenticate: pkolla

 $ curl -I  http://pkolla:88/t2/
HTTP/1.1 401 Unauthorized
Server: nginx/0.8.54
Date: Tue, 01 Feb 2011 14:15:34 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 195
Connection: keep-alive
Keep-Alive: timeout=20



Конфигурация при этом выглядит как:

location /t1/
{
 set   $app test1;
 add_header   "WWW-Authenticate" $host;
 echo "test1";
}

location /t2/
{
 set   $app test2;
 add_header   "WWW-Authenticate" $host;
 return   401;
 echo   "test2";
}

В исходниках модуля я вижу что, по идее, хедер должен быть послан, однако этого 
не происходит в моём случае. Буду рад услышать ваши мнения и советы 
относительно возможных граблей.
Благодарю заранее.




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