Наше приложение использует вызовы службы RESTful с использованием NSURLSession
. Сами вызовы маршрутизируются через обратный прокси-сервер, чтобы помочь в управлении сеансом, безопасности и т. Д. На сервере. Единственная проблема, с которой мы сталкиваемся, связана с аутентификацией. Когда пользователь пытается получить доступ к защищенному ресурсу - либо через браузер, либо через вызов REST - и он не аутентифицирован, обратный прокси-сервер отображает страницу входа в HTML.
Проблема в том, что мы хотели бы использовать способность NSURLSession
автоматически обрабатывать проблемы аутентификации. Однако NSURLSession
не может распознать, что мы получаем ответ на запрос аутентификации, потому что клиенту не возвращается HTTP 401 или другой код ошибки. Обратный прокси-сервер отправляет 200, потому что HTML был успешно доставлен. Мы можем распознать, что это страница входа в систему, проверив HTML-код в клиенте, но мы хотели бы иметь возможность обрабатывать аутентификацию с использованием пользовательского NSURLAuthenticationChallenge
, если это вообще возможно, чтобы NSURLSession
мог повторять запросы после аутентификации. успешно.
Есть ли способ узнать, что мы возвращаем страницу входа в наш completionHandler
, и сообщить NSURLSession
, что мы действительно получаем ответ на запрос аутентификации? Или NSURLSession
требует, чтобы мы получили обратно код ошибки HTTP (401 и т. Д.)