2016-12-07 4 views
0

Я смог использовать этот ответ, чтобы помочь мне войти в мое приложение, используя сертификат клиента.Клиентский сертификат с загрузкой файла в Alamofire issue

Getting Client Certificate for Mutual Authentication with Alamofire

Все прекрасно работает для входа в систему. Теперь мне нужно сделать еще один запрос на загрузку файла. Я использовал тот же бит кода из предыдущего сообщения, чтобы взять файл p12 и создать свой serverTrustPolicy и добавить его в свой диспетчер сеансов, но когда я делаю запрос, сервер сообщает мне, что я не передаю им сертификат.

Я не понимаю, почему код будет работать для одного экземпляра, а не другого. Единственное различие между ними состоит в том:

Работы:

manager = Alamofire.SessionManager(serverTrustPolicyManager: ServerTrustPolicyManager(policies: serverTrustPolicy)) 

Не работает:

manager = Alamofire.SessionManager(configuration: configuration, serverTrustPolicyManager : ServerTrustPolicyManager(policies: serverTrustPolicy)) 

Оба используют didChallenge делегата точно так же.

Буду признателен за понимание.

ответ

0

По-видимому, проблема связана с конфигурацией и ServerTrustPolicyManager. Когда у меня есть только STPM и поместить мои заголовки внутри функции загрузки, вызов работает просто отлично. Возможно, что-то о попытке сделать два фоновых вызова в приложении вызывает проблемы. По умолчанию и эфемерные звонки работают нормально.