Как исправить ошибку `` Неожиданный конец входного потока ZLIB '' при запуске карате по URL-адресу SSL

Я использую Karate для тестирования веб-сервисов, и у меня возникла проблема при выполнении запросов на URL-адрес SSL. Я получаю следующую ошибку:

ОШИБКА com.intuit.karate - java.lang.RuntimeException: java.io.EOFException: неожиданный конец входного потока ZLIB

Я генерирую данные запроса, вызывая другой класс, и передаю эти данные запросу, как показано во фрагменте кода ниже.

В karate-config.js я добавил karate.configure ('ssl', true) и все другие варианты строкового значения, но безрезультатно.

Я использую каратэ версии 0.9.0 на jdk jdk1.8.0_171 с использованием maven 3.5.3

* def data = Java.type('mdmtests.PersonData').insert('<abs:PersonDetails>', core, queryFields)

* configure headers = { Content-Type: 'text/xml; charset=UTF-8',  Keep-Alive: 'timeout=10, max=1000'}
Given request data
When soap action '"document/http://siebel.com/CustomUI:..."'
Then status 200
* xml soapResponseXml = response
Then match soapResponseXml /Envelope/Body/ListOfPerson/PersonDetails/IdentificationNo == person.SOC_SECURITY_NUM

Когда я запускаю тот же сценарий на другом сервере без включенного SSL, запрос отправляется успешно, и я не получаю сообщения об ошибке. Кроме того, я могу без проблем отправлять запросы на URL-адрес с поддержкой SSL с помощью пользовательского интерфейса SOAP. Что мне не хватает?


person oscars411    schedule 06.02.2019    source источник


Ответы (2)


Это может быть так просто, как если бы вы забыли переключить URL-адрес на https://, проверьте.

Иначе мне очень трудно сказать без дополнительных данных. Если вы не можете найти то, что вам не хватает, выполните следующие действия: https://github.com/intuit/karate/wiki/How-to-Submit-an-Issue

РЕДАКТИРОВАТЬ: похоже, что это проблема с настройкой сильной криптографии, после того, как мы получили более подробную информацию - см. https://github.com/intuit/karate/issues/672#issuecomment-461364938

Вам придется разобраться в этом самостоятельно, если вы не предоставите нам способ воспроизвести это - убедитесь, что разрешения для новых файлов в порядке, совместимость SSL между клиентом и сервером в порядке и т. Д.

person Peter Thomas    schedule 06.02.2019
comment
URL-адрес правильно указывает на https: // Я создал проблему в github для этой проблемы. - person oscars411; 07.02.2019

После того, как я оставил это на несколько месяцев, решение возникло из нескольких изменений, которые мне нужно было внести в Java и проект карате. Чтобы уточнить, я использовал самозаверяющий сертификат на сервере.

  1. Импортировал самозаверяющий сертификат в свое хранилище ключей с помощью keytool
  2. Добавлен расширение Java Cryptography с неограниченной мощностью. в JAVA_HOME; шаги по установке
  3. В файл karate-config.js я добавил следующее:

    karate.configure('ssl', { trustAll: true, algorithm: "TLSv1.2" });

  4. В pom.xml я изменил зависимость клиента Http с карате-апач на карате-джерси

Я, наконец, добился того, что это заработало, после множества проб и ошибок, я понимаю, что некоторые из шагов могут быть актуальны не для всех, но шаг 4 определенно остановил неожиданную проблему EOF.

person oscars411    schedule 19.09.2019