0

我想我在这里没有想法。

我正在尝试在具有 ssl 证书的 java 中使用 Web 服务。

我创建了一个已添加证书的密钥库文件。该文件位于我的项目文件夹中。

我使用以下方法导入它:

System.setProperty("javax.net.ssl.keyStore", "folder\\keystore.jks");
System.setProperty("javax.net.ssl.keyStorePassword", "SECRET");

显然,Web 服务调用会检查密钥库,因为当提供错误的文件路径时,应用程序会在调用 WS 时引发异常,而不是在设置系统属性时。

无论如何,当给出密钥库文件的正确路径时,我仍然得到

AxisFault faultCode:{http://xml.apache.org/axis/}HTTP faultSubcode:faultString:(401)需要授权

有人告诉我,我必须信任 CA,才能让这一切奏效。

我该怎么做呢?

4

1 回答 1

1

我想到了。显然,该服务使用 HTTP Basic 身份验证。

Axis 生成的 Stub(扩展 org.apache.axis.client.stub)在构造函数中需要以下 2 行

((org.apache.axis.client.Stub) this)._setProperty(org.apache.axis.client.Call.USERNAME_PROPERTY, "HTTPUSER");
((org.apache.axis.client.Stub) this)._setProperty(org.apache.axis.client.Call.PASSWORD_PROPERTY, "HTTPPW");

谢谢你的帮助。

问候

于 2012-10-22T13:34:37.273 回答