根据使用wsdl2java创建的存根,将客户端证书附加到Web服务调用

时间:2012-04-11 14:03:56

标签: java web-services certificate

我已经使用wsdl2java创建了使用Web服务的存根类,但我需要为传输指定客户端证书。我该怎么做?

在.NET中,我习惯于在拨打电话之前将X509Certificate对象直接附加到类似的存根类。

1 个答案:

答案 0 :(得分:1)

在Java中,您有几个选择:

  • 指定java.net.ssl*参数以设置证书存储区,密码等。您需要使用keytool来设置这些对象。

这是代码,或者可以在命令行中使用-D指定这些代码。请注意,这些将是您应用的全局。

System.setProperty("javax.net.ssl.keyStore", "myKeyStore.p12");
System.setProperty("javax.net.ssl.keyStoreType", "pkcs12");
System.setProperty("javax.net.ssl.keyStorePassword", "password");
  • 创建一个自定义SSLFactory,用于在较低级别配置您的证书并将其设置在您的WS上下文中。你可以google为此找到很多信息。还要检查this question(作者说它适用于JAX-RPC,但在评论中他改变了对JAX-WS的影响)。

您可以在JSSE docs(这适用于java 1.5)中找到更多信息。