在docs中提供和 here , 我试图改变 HostnameVerifierClass
使用以下代码:
val sslConfig = AkkaSSLConfig().mapSettings { s =>
s.withHostnameVerifierClass(java.lang.Class[NoopHostnameVerifier])
s
}
val badCtx = Http().createClientHttpsContext(sslConfig)
Http().superPool[RequestTracker](badCtx)(httpMat)
但是我遇到了以下错误:
Error:(83, 31) object java.lang.Class is not a value s.withHostnameVerifierClass(JJClass[NoopHostnameVerifier])
从此answer获得帮助,我将其更改为:
val sslConfig = AkkaSSLConfig().mapSettings { s =>
s.withHostnameVerifierClass(classOf[NoopHostnameVerifier])
s
}
但这也不编译说:
Error:(83, 38) type mismatch;
found : Classorg.apache.http.conn.ssl.NoopHostnameVerifier
required: Class[javax.net.ssl.HostnameVerifier]
Note: org.apache.http.conn.ssl.NoopHostnameVerifier <: javax.net.ssl.HostnameVerifier, but Java-defined class Class is invariant in type T.
You may wish to investigate a wildcard type such as
_ <: javax.net.ssl.HostnameVerifier
. (SLS 3.2.10)s.withHostnameVerifierClass(classOf[NoopHostnameVerifier])
我该如何解决这个问题,NoopHostnameVerifier
实现接口(interface) HostnameVerifier
, 但仍然会出现此错误。
最佳答案
是的,正如评论中所建议的,这是由于 issue在 ssl-config 中,通过将版本升级到 0.2.2 ,以下代码开始工作:
val sslConfig = AkkaSSLConfig().mapSettings { s =>
s.withHostnameVerifierClass(classOf[VerifiesAllHostNames])
s
}
关于java - 如何在 AkkaSSLConfig 中设置 HostnameVerifierClass,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47364464/