java - 如何将 CXF 客户端的 TLS/SSL Http 身份验证用于 Web 服务?

标签 java web-services ssl cxf ws-security

我正在尝试访问受证书保护的 Web 服务。 安全设置在 IIS 上,Web 服务在其后面。

我认为 WS-SECURITY 不会执行这种类型的身份验证。 有什么方法可以在调用web服务时传递客户端证书吗?

我刚收到一个 IIS 错误页面,上面写着“该页面需要一个 客户端证书”。

我正在使用 CXF 2.1.4

最佳答案

是的,这可以使用 CXF。您将需要设置客户端管道。您可以指定包含证书的 keystore ,这些证书将允许您访问 IIS 中的 Web 服务。只要您在此处使用的证书是 IIS 中已知的允许客户端,就可以了。

<http:conduit name="{http://apache.org/hello_world}HelloWorld.http-conduit">

   <http:tlsClientParameters>
       <sec:keyManagers keyPassword="password">
            <sec:keyStore type="JKS" password="password"
                 file="src/test/java/org/apache/cxf/systest/http/resources/Morpit.jks"/>
       </sec:keyManagers>
       <sec:trustManagers>
           <sec:keyStore type="JKS" password="password"
                file="src/test/java/org/apache/cxf/systest/http/resources/Truststore.jks"/>
       </sec:trustManagers>

       ...

   </http:tlsClientParameters>

样本来自:CXF Wiki

关于java - 如何将 CXF 客户端的 TLS/SSL Http 身份验证用于 Web 服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/543896/

相关文章:

java - 同一用户多次发送推送通知的多个 GCM 注册 ID

java - Java麦克风TargetDataLine灵敏度/最大输入振幅

c# - Sharepoint Web 服务 GetListItems 不返回所有行

ssl - OpenSSL:openssl s_client 验证返回:1 但验证返回码:0(确定)

python - 收到 TLS 错误 : FATAL alert returned by server: HANDSHAKE_FAILURE

java - 如何从给定字符串获取描述中的预期输出

java - IBM Worklight 6.2 多个 SLF4J 绑定(bind)

java - 如何将 JAXB 转换为 JSON?

java - 下载由 java web 服务 (POST) 流式传输的 pdf

c++ - boost::asio::ssl::context 可以在多个 SSL 流之间共享吗?