我是网络服务新手。我已经完成了编写客户端代码的任务,该代码将调用在https上公开的身份验证Web服务。我需要从客户端代码传递用户名和密码来检查有效用户。我还有密钥库和可信任文件。我不知道如何使用这些文件。任何人都可以指导我并提供示例客户代码吗?
我正在使用Axis从wsdl生成客户端存根。
此致
Vishal
答案 0 :(得分:0)
当你说Webservice和Axis时,我认为你在谈论SOAP。您可以查看Java webservice (soap) client - use certificates。
SOAP是一种基于HTTP的协议。如果您希望它通过SSL,则可以使用HTTPS。
答案 1 :(得分:0)
如果您可以访问该网址,则需要添加证书。
.cer
格式命令:
$ keytool -import -noprompt -trustcacerts -alias ALIASNAME -file FILENAME_OF_THE_INSTALLED_CERTIFICATE -keystore PATH_TO_CACERTS_FILE -storepass PASSWORD
参考: http://docs.oracle.com/javase/tutorial/security/toolsign/rstep2.html
答案 2 :(得分:0)
axis1或axis2? 无论如何..如果它只是https,你需要导入证书,根据你所呼叫的服务器的政策,你可能也必须出示证书......
在此查看https://axis.apache.org/axis2/java/rampart/samples.html以获取有关基本身份验证的信息和示例。
至于为传出请求添加证书,您需要按照以下方式执行操作:
System.setProperty("javax.net.ssl.trustStoreType", "JKS");
System.setProperty("javax.net.ssl.trustStore", "keystore.jks");
System.setProperty("javax.net.ssl.trustStorePassword", "password");
System.setProperty("javax.net.ssl.keyStoreType", "pkcs12");
System.setProperty("javax.net.ssl.keyStore", "client.p12");
System.setProperty("javax.net.ssl.keyStorePassword", "password");
如果您的通信是通过代理进行的,请另外小心..