2012-01-04 123 views
0

我使用wsdlc ANT任务从wsdl创建了一个JAXWS webservice,并部署在Weblogic 10.3.0中。我们有Sun一个Java Server 7.0,其中安装了Verisign Server证书并将其配置为将Web服务请求转发到weblogic。JAXWS客户端使用X509服务器身份验证调用JAXWS Webservice

我使用wsimport ant任务创建了一个JAXWS客户端来调用webservice。当使用https URL运行客户端时,我可以看到weblogic中的xml请求,webservice已成功处理。但我无法在xml请求/响应中找到任何x509证书的证据。除了使用wsimport生成存根外,还需要在客户端执行任何操作吗?通过浏览器查看wsdl时的FYI通过浏览器可以查看证书详细信息。

回答

4

您通过HTTPS连接到WebService,您的客户端和服务器执行x509证书交换。这是在连接级别执行的,wsimport与此无关。如果您想在该级别上使用x509证书,则需要深入探究Java HTTPS client certificate authentication/Java client for the X.509 secured web-service和服务器端Securing WebLogic Server: Configuring SSL

或者,您可以下降一级:使用HTTP协议连接到服务器,并在SOAP级别上执行加密/签名/身份验证。然后,请参阅User authenticate in SOAPUsing JAX-WS-Based Web Services with SSL的Metro/JAX-WS服务,WS-Security用于Apache CXF,Spring Security With X.509 Certificate用于Spring Security - 取决于您选择的框架。

+0

是的,我们需要在传输级别进行身份验证。当调用webservice时,我们如何验证身份验证是否真的发生?我相信在SOAP级别上,我们可以看到xml请求中的证书详细信息是否正确? – Doss 2012-01-04 17:05:30

+0

尝试运行未初始化证书存储区的客户端。它应该失败。在服务器端调试也很有帮助。 – 2012-01-04 17:19:44

+0

其实我没有初始化任何商店,它没有失败。所以我认为服务器端没有启用证书,但是当我使用https通过浏览器查看wsdl时,我可以通过浏览器窗口查看证书详细信息。 – Doss 2012-01-04 17:32:58

0

我能够使用-Djavax.net.debug = all验证SSL握手。我没有修改我的客户端以包含信任库,如果证书由可信任的CA签署,则不需要它。

相关问题