java - 如何在 AkkaSSLConfig 中设置 HostnameVerifierClass

标签 java scala ssl akka

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/

相关文章:

java - 错误 EJB 计时器服务不可用。应用定时器不会被删除

java - 如何将文件包含到 NetBeans 平台框架应用程序中

Scala future : Transform Future[Vector[T]] to Future[Result]

sql - Scala Doobie PSQLException : ERROR: syntax error at end of input when use "Like %"

c# - 自签名证书 : Private key questions

java - 我们可以将Java中字符串中开头和结尾有符号的部分替换为Identify吗?

java - 2 个线程 vs 2 个进程(设计/性能/隔离)

Scala 在枚举上匹配 int

c# - ActiveMQ、SSL、C#

google-app-engine - 开发者控制台中自定义域的 App Engine SSL(不是通过 Google Apps)