Мы упаковываем нашу WAR с веб-сервисами axis2 в /WEB-INF/services.
Он был разработан с использованием Axis 1.5.1, а затем обновлен до Axis 1.6.2/Rampart 1.6.2 несколько лет назад. Теперь нам нужно обновиться до Axis 1.7.2/rampart 1.7.0.
Мы добавляем usernameSecurity в наши веб-сервисы. Мы также упаковываем пример клиентского приложения веб-сервисов. Дела шли нормально. Но после обновления до Axis 1.7.2/Rampart 1.7.0 метод PasswordCallBackHandler.handle не вызывается. Таким образом, наш клиент веб-сервисов ломается. Вот как я добавляю обратный вызов пароля client.axis2.xml для добавления имени пользователя/пароля в SOAP-запрос.
<axisconfig name="AxisJava2.0">
<module ref="rampart"/>
<parameter name="OutflowSecurity">
<action>
<items>UsernameToken</items>
<user>system</user>
<passwordCallbackClass>com.web.ws.connector.CSPWCBHandler</passwordCallbackClass>
<passwordType>PasswordText</passwordType>
</action>
My services.xml looks like the following :
<service name="labware_weblims_listFunctions" targetNamespace="http://www.labware.com/webservice">
<description>Service description for labware_weblims_listFunctions</description>
<schema schemaNamespace="http://www.labware.com/webservice"/>
<parameter name="ServiceClass">com.web.ws.service.ListService</parameter>
<parameter name="disasbleREST">true</parameter>
<operation name="listMethods">
<messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
</operation>
<module ref="soapmonitor"/>
<module ref="rampart"/>
<parameter name="InflowSecurity">
<action>
<items>UsernameToken</items>
<passwordCallbackClass>com.web.ws.control.PWCBHandler</passwordCallbackClass>
</action>
</parameter>
</service>
Когда я обновился до Axis 1.7.2, все сломалось. Обработчики PasswordCallBackHandler не вызываются.
Я искал Services.xml dtd, но не нашел. Я предполагаю, что мне придется добавить CallBackHandlers как RampartConfig. Есть ли другие решения проблемы. Любая помощь будет оценена.