当我们从Axis 1.6.2 / Rampart 1.6.2升级到Axis 1.7.2 / Rampart 1.7.0

时间:2016-10-07 10:57:52

标签: web-services axis2 rampart

我们使用/ WEB-INF / services中的axis2 webservices打包WAR。

它是使用Axis 1.5.1开发的,然后在几年前升级到Axis 1.6.2 / Rampart 1.6.2。现在我们需要升级到Axis 1.7.2 / rampart 1.7.0。

我们将usernameSecurity添加到我们的webservices。我们还打包了一个示例webservices客户端应用程序。事情进展顺利。但是一旦我们升级到Axis 1.7.2 / Rampart 1.7.0,就不会调用PasswordCallBackHandler.handle方法。因此我们的webservices客户端中断。这就是我添加密码回调client.axis2.xml以在请求SOAP中添加用户名/ pwd的方法。

<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>

我的services.xml如下所示:

<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时,事情就破裂了。不调用PasswordCallBackHandlers。

我搜索了Services.xml dtd但没找到它。我猜我必须将CallBackHandlers添加为RampartConfig。有没有其他方法可以解决这个问题。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

我能够解决问题。我在问题中列出的services.xml和client.axis2.xml中的PasswordCallBackHandler条目是Apache Rampart 1.0样式配置。他们使用Axis 1.5.1和Axis 1.6.2库。在Axis2 1.7.0中已停止对Rampart 1.0配置的支持。请参阅以下链接

https://axis.apache.org/axis2/java/rampart/release-notes/1.7.0.html

标准方法是创建策略文件并将PasswordCallBackHandler添加为RampartConfig。如果有人需要,我会非常愿意帮忙。