我正在尝试修复使用Axis2和Rampart的客户端应用。该应用将使用多组凭据访问相同的API。目前,密码回调类依赖于axis2.xml文件中的用户来确定要使用的凭据。这显然不起作用,因为它只允许单个用户。有人可以向我解释正确的方法吗?
答案 0 :(得分:0)
我在http://www.ibm.com/developerworks/java/library/j-jws4/找到了一个有用的例子。我摆脱了axis2.xml中的OutflowSecurity参数。我也摆脱了密码回调类。我添加了一个policy.xml文件和一些代码来加载它。我使用此代码提供用户名和密码:
// Prepare the client
PartnerAPIStub stub = stubProvider.getStub();
ServiceClient client = stub._getServiceClient();
client.engageModule("rampart");
org.apache.axis2.client.Options options = client.getOptions();
options.setProperty(RampartMessageData.KEY_RAMPART_OUT_POLICY, policy);
options.setUserName(account.getApiUser());
options.setPassword(account.getApiPassword());
// Send the request
RetrieveResponseMsg response = stub.retrieve(requestDoc).getRetrieveResponseMsg();