Отключить SSL с помощью библиотеки рассылки Scala
В настоящее время я нахожусь в процессе переноса всех наших тестов Rest на сервер CI и заметил, что все тесты терпят неудачу из-за рукопожатия SSL, теперь я успешно отключил это с TrustManager с нашим набором тестов Java, но не уверен, как сделать это с диспетчерской библиотекой Scala, и нам не удалось найти много примеров, которые могли бы применяться в этом сценарии.
val JSONstr = "{samplekey:samplevalue}"
val response:String = Http(url("https://www.host.com/path/to/post")
<< (checkInJSONstr, "application/json") as_str)
Следующее исключение происходит, как и ожидалось:
javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated at com.sun.net.ssl.internal.ssl.SSLSessionImpl.getPeerCertificates(SSLSessionImpl.java:352)
...
Есть ли способ сделать это чисто синтаксически игнорировать SSL с библиотекой отправки?
2 ответа
import dispatch._
val http = new Http with HttpsLeniency
val response:String = http(url("https://www.host.com/path/to/post")
<< (checkInJSONstr, "application/json") as_str)
Ответ viktortnk больше не работает с последней версией Dispatch (0.13.2). Для самой новой версии вы можете использовать следующее для создания http-клиента, который принимает любой сертификат:
val myHttp = Http.withConfiguration(config => config.setAcceptAnyCertificate(true))
Затем вы можете использовать его для GET-запросов:
myHttp(url("https://www.host.com/path").GET OK as.String)
Я нашел это здесь: Почему диспетчер генерирует исключения "java.net.ConnectException: General SSLEngine ..." и "неожиданный статус" для определенного URL?