2017-11-18 149 views
0

docshere提供设置HostnameVerifierClass,我尝试使用下面的代码来改变HostnameVerifierClass如何AkkaSSLConfig

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实现接口HostnameVerifier,但还是这个错误来。

+0

你见过[这个问题(https://开头github.com/lightbend/ssl-config/issues/46),它似乎是一回事。你使用的是最新版本的'ssl-config'吗? – Kraylog

回答

0

是,在意见提出,它issue在SSL配置是由于,通过升级版0.2.2,下面的代码开始工作:

val sslConfig = AkkaSSLConfig().mapSettings { s => 
    s.withHostnameVerifierClass(classOf[VerifiesAllHostNames]) 
    s 
}