2013-12-19 2 views
0

Я пытаюсь исправить клиентское приложение, использующее Axis2 и Rampart. Приложение будет обращаться к одному и тому же API, используя несколько наборов учетных данных. В настоящее время класс обратного вызова пароля полагается на пользователя в файле axis2.xml, чтобы определить, какие учетные данные использовать. Очевидно, это не сработает, потому что это разрешает только одному пользователю. Может кто-нибудь, пожалуйста, объясните мне правильный способ сделать это?Как использовать динамические учетные данные пользователя с Axis2 и Rampart?

ответ

0

Я нашел полезный пример на http://www.ibm.com/developerworks/java/library/j-jws4/. Я избавился от параметра OutflowSecurity в axis2.xml. Я также избавился от класса обратного вызова пароля. Я добавил файл 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(); 
Смежные вопросы