Всем привет.
Для проброса запросов от php-приложения на Linux к внутрифирменным Windows-сервисам использую php-curl и делегирование. В принципе в 90% случаев работает нормально. Но иногда возникают такие траблы, что вместо аутентификации curl_exec возвращает 401! Глядя на сетевую активность через fiddler наблюдаю, что при работающих-как-надо запросов происходит два запроса -
1. Linux->Windows->return 401
2. Linux (Authorization: Negotiate NNNN)->Windows->return 200
А в не-работающих-как-надо curl отказывается выполнять шаг 2 и возвращает клиенту 401, без попытки выполнить шаг 2.
Не встречалась ли вам эта проблема?
P.S.
Попытка поймать 401 в php и переаутентифицироваться повторно не приводит к желаемому результату. Всё равно 401 (пробовал до 10 повторных попыток), например:
Update:
Модуль curl в PHP работает неправильно. Пришлось тупо вызывать curl как команду в shell. Все заработало.