如何在Axis2和Rampart中使用动态用户凭据?

时间:2013-12-19 00:35:01

标签: axis2 rampart

我正在尝试修复使用Axis2和Rampart的客户端应用。该应用将使用多组凭据访问相同的API。目前,密码回调类依赖于axis2.xml文件中的用户来确定要使用的凭据。这显然不起作用,因为它只允许单个用户。有人可以向我解释正确的方法吗?

1 个答案:

答案 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();