如何将客户端证书与 Apache CXF 一起使用?

问题描述 投票:0回答:1

我尝试将 SOAP API 与 Apache CXF 结合使用,但该 API 需要 SSL 客户端证书。我看到您可以使用一些 XML-Config,但我想以编程方式执行此操作。将

sslContext
设置在
tlsClientParameters
内似乎也不起作用。这是我的代码:

val service = SoapyService()
val port = service.soapyPort

val cond = ClientProxy.getClient(port).conduit
(cond as HTTPConduit).apply {
    tlsClientParameters =
        TLSClientParameters().apply {
            sslContext = sslContextWithCert
        }
}
val result = port.login(username, password)

但是由于缺少证书,服务器在 SSL 握手期间终止了连接。

java ssl cxf client-certificates
1个回答
0
投票

有了 SSLContext 已经存在,我们就可以轻松地从中获取 SSLSocketFactory。 只需使用

sslSocketFactory = sslContextWithCert.socketFactory
而不是
sslContext = sslContextWithCert
。这将使 Apache CXF 使用该工厂的套接字,该工厂(如果您将证书添加到该 SSL 上下文)将随您的请求发送证书。

© www.soinside.com 2019 - 2024. All rights reserved.