2017-11-18 137 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 
}