[
https://issues.apache.org/jira/browse/AXIS2-5581?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Syed Ahmed Jeelani updated AXIS2-5581:
--------------------------------------
Description:
We are using IBM Tivoli Directory Integrator v7.1.1 to create a solution to
call Remote Webservices. IBM TDI Web service suite uses the apache axis2 to
invoke the webservices.
The requirement is such that, the web services is sending a response with a
wsse:security header. I have developed a custom handler and used it in the
InFlow PhaseOrder after the dispatch phase,(by creating a custom phase and
adding the handler to it) of the axis2.xml file.
But during the, if the web service return a soap-fault, then the instead of the
InfaultFlow phaseOrder, inFlow phaseOrder is being used.
<phaseOrder type="InFlow">
<!-- System predefined phases -->
<phase name="Transport">
<handler name="RequestURIBasedDispatcher"
class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher">
<order phase="Transport"/>
</handler>
<handler name="SOAPActionBasedDispatcher"
class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher">
<order phase="Transport"/>
</handler>
</phase>
<phase name="Addressing">
<handler name="AddressingBasedDispatcher"
class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
<order phase="Addressing"/>
</handler>
</phase>
<phase name="Security"/>
<phase name="PreDispatch"/>
<phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
<handler name="RequestURIBasedDispatcher"
class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
<handler name="SOAPActionBasedDispatcher"
class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
<handler name="RequestURIOperationDispatcher"
class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
<handler name="SOAPMessageBodyBasedDispatcher"
class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
<handler name="HTTPLocationBasedDispatcher"
class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
<handler name="GenericProviderDispatcher"
class="org.apache.axis2.jaxws.dispatchers.GenericProviderDispatcher"/>
<handler name="MustUnderstandValidationDispatcher"
class="org.apache.axis2.jaxws.dispatchers.MustUnderstandValidationDispatcher"/>
</phase>
<phase name="RMPhase"/>
<!-- System predefined phases -->
<phase name="CustomSoapHeaderValidation">
<handler name="SecurityHeaderValidator"
class="com.test.service.phase.handler.SecurityHeaderHandler"/>
</phase>
<!-- After Postdispatch phase module author or service author can add
any phase he want -->
<phase name="OperationInPhase">
<handler name="MustUnderstandChecker"
class="org.apache.axis2.jaxws.dispatchers.MustUnderstandChecker">
<order phase="OperationInPhase"/>
</handler>
</phase>
<phase name="soapmonitorPhase"/>
</phaseOrder>
<phaseOrder type="OutFlow">
<!-- user can add his own phases to this area -->
<phase name="soapmonitorPhase"/>
<phase name="OperationOutPhase"/>
<!--system predefined phase-->
<!--these phase will run irrespective of the service-->
<phase name="RMPhase"/>
<phase name="PolicyDetermination"/>
<phase name="MessageOut"/>
<phase name="Security"/>
</phaseOrder>
<phaseOrder type="InFaultFlow">
<phase name="Addressing">
<handler name="AddressingBasedDispatcher"
class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
<order phase="Addressing"/>
</handler>
</phase>
<phase name="Security"/>
<phase name="PreDispatch"/>
<phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
<handler name="RequestURIBasedDispatcher"
class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
<handler name="SOAPActionBasedDispatcher"
class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
<handler name="RequestURIOperationDispatcher"
class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
<handler name="SOAPMessageBodyBasedDispatcher"
class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
<handler name="HTTPLocationBasedDispatcher"
class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
<handler name="GenericProviderDispatcher"
class="org.apache.axis2.jaxws.dispatchers.GenericProviderDispatcher"/>
<handler name="MustUnderstandValidationDispatcher"
class="org.apache.axis2.jaxws.dispatchers.MustUnderstandValidationDispatcher"/>
</phase>
<phase name="RMPhase"/>
<!-- user can add his own phases to this area -->
<phase name="OperationInFaultPhase"/>
<phase name="soapmonitorPhase"/>
</phaseOrder>
<phaseOrder type="OutFaultFlow">
<!-- user can add his own phases to this area -->
<phase name="soapmonitorPhase"/>
<phase name="OperationOutFaultPhase"/>
<phase name="RMPhase"/>
<phase name="PolicyDetermination"/>
<phase name="MessageOut"/>
<phase name="Security"/>
</phaseOrder>
was:
We are using IBM Tivoli Directory Integrator v7.1.1 to create a solution to
call Remote Webservices. The requirement is such that, the web services is
sending a response with a wsse:security header. I have developed a custom
handler and used it in the InFlow PhaseOrder after the dispatch phase,(by
creating a custom phase and adding the handler to it) of the axis2.xml file.
But during the, if the web service return a soap-fault, then the instead of the
InfaultFlow phaseOrder, inFlow phaseOrder is being used.
<phaseOrder type="InFlow">
<!-- System predefined phases -->
<phase name="Transport">
<handler name="RequestURIBasedDispatcher"
class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher">
<order phase="Transport"/>
</handler>
<handler name="SOAPActionBasedDispatcher"
class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher">
<order phase="Transport"/>
</handler>
</phase>
<phase name="Addressing">
<handler name="AddressingBasedDispatcher"
class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
<order phase="Addressing"/>
</handler>
</phase>
<phase name="Security"/>
<phase name="PreDispatch"/>
<phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
<handler name="RequestURIBasedDispatcher"
class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
<handler name="SOAPActionBasedDispatcher"
class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
<handler name="RequestURIOperationDispatcher"
class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
<handler name="SOAPMessageBodyBasedDispatcher"
class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
<handler name="HTTPLocationBasedDispatcher"
class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
<handler name="GenericProviderDispatcher"
class="org.apache.axis2.jaxws.dispatchers.GenericProviderDispatcher"/>
<handler name="MustUnderstandValidationDispatcher"
class="org.apache.axis2.jaxws.dispatchers.MustUnderstandValidationDispatcher"/>
</phase>
<phase name="RMPhase"/>
<!-- System predefined phases -->
<phase name="CustomSoapHeaderValidation">
<handler name="SecurityHeaderValidator"
class="com.test.service.phase.handler.SecurityHeaderHandler"/>
</phase>
<!-- After Postdispatch phase module author or service author can add
any phase he want -->
<phase name="OperationInPhase">
<handler name="MustUnderstandChecker"
class="org.apache.axis2.jaxws.dispatchers.MustUnderstandChecker">
<order phase="OperationInPhase"/>
</handler>
</phase>
<phase name="soapmonitorPhase"/>
</phaseOrder>
<phaseOrder type="OutFlow">
<!-- user can add his own phases to this area -->
<phase name="soapmonitorPhase"/>
<phase name="OperationOutPhase"/>
<!--system predefined phase-->
<!--these phase will run irrespective of the service-->
<phase name="RMPhase"/>
<phase name="PolicyDetermination"/>
<phase name="MessageOut"/>
<phase name="Security"/>
</phaseOrder>
<phaseOrder type="InFaultFlow">
<phase name="Addressing">
<handler name="AddressingBasedDispatcher"
class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
<order phase="Addressing"/>
</handler>
</phase>
<phase name="Security"/>
<phase name="PreDispatch"/>
<phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
<handler name="RequestURIBasedDispatcher"
class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
<handler name="SOAPActionBasedDispatcher"
class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
<handler name="RequestURIOperationDispatcher"
class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
<handler name="SOAPMessageBodyBasedDispatcher"
class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
<handler name="HTTPLocationBasedDispatcher"
class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
<handler name="GenericProviderDispatcher"
class="org.apache.axis2.jaxws.dispatchers.GenericProviderDispatcher"/>
<handler name="MustUnderstandValidationDispatcher"
class="org.apache.axis2.jaxws.dispatchers.MustUnderstandValidationDispatcher"/>
</phase>
<phase name="RMPhase"/>
<!-- user can add his own phases to this area -->
<phase name="OperationInFaultPhase"/>
<phase name="soapmonitorPhase"/>
</phaseOrder>
<phaseOrder type="OutFaultFlow">
<!-- user can add his own phases to this area -->
<phase name="soapmonitorPhase"/>
<phase name="OperationOutFaultPhase"/>
<phase name="RMPhase"/>
<phase name="PolicyDetermination"/>
<phase name="MessageOut"/>
<phase name="Security"/>
</phaseOrder>
> The soap faults are being sent through InFlow pipe rather than InFaultFlow
> pipe.
> --------------------------------------------------------------------------------
>
> Key: AXIS2-5581
> URL: https://issues.apache.org/jira/browse/AXIS2-5581
> Project: Axis2
> Issue Type: Bug
> Components: TCP transport
> Affects Versions: 1.4
> Reporter: Syed Ahmed Jeelani
> Labels: patch
> Fix For: 1.4
>
> Attachments: usingCustomConfigAxis2XML.log, usingDefaultAxis2Xml.log
>
> Original Estimate: 48h
> Remaining Estimate: 48h
>
> We are using IBM Tivoli Directory Integrator v7.1.1 to create a solution to
> call Remote Webservices. IBM TDI Web service suite uses the apache axis2 to
> invoke the webservices.
> The requirement is such that, the web services is sending a response with a
> wsse:security header. I have developed a custom handler and used it in the
> InFlow PhaseOrder after the dispatch phase,(by creating a custom phase and
> adding the handler to it) of the axis2.xml file.
> But during the, if the web service return a soap-fault, then the instead of
> the InfaultFlow phaseOrder, inFlow phaseOrder is being used.
> <phaseOrder type="InFlow">
> <!-- System predefined phases -->
> <phase name="Transport">
> <handler name="RequestURIBasedDispatcher"
>
> class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher">
> <order phase="Transport"/>
> </handler>
> <handler name="SOAPActionBasedDispatcher"
>
> class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher">
> <order phase="Transport"/>
> </handler>
> </phase>
> <phase name="Addressing">
> <handler name="AddressingBasedDispatcher"
>
> class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
> <order phase="Addressing"/>
> </handler>
> </phase>
> <phase name="Security"/>
> <phase name="PreDispatch"/>
> <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
> <handler name="RequestURIBasedDispatcher"
>
> class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
> <handler name="SOAPActionBasedDispatcher"
>
> class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
> <handler name="RequestURIOperationDispatcher"
>
> class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
> <handler name="SOAPMessageBodyBasedDispatcher"
>
> class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
> <handler name="HTTPLocationBasedDispatcher"
>
> class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
> <handler name="GenericProviderDispatcher"
>
> class="org.apache.axis2.jaxws.dispatchers.GenericProviderDispatcher"/>
> <handler name="MustUnderstandValidationDispatcher"
>
> class="org.apache.axis2.jaxws.dispatchers.MustUnderstandValidationDispatcher"/>
> </phase>
> <phase name="RMPhase"/>
> <!-- System predefined phases -->
> <phase name="CustomSoapHeaderValidation">
> <handler name="SecurityHeaderValidator"
>
> class="com.test.service.phase.handler.SecurityHeaderHandler"/>
> </phase>
> <!-- After Postdispatch phase module author or service author can
> add any phase he want -->
> <phase name="OperationInPhase">
> <handler name="MustUnderstandChecker"
>
> class="org.apache.axis2.jaxws.dispatchers.MustUnderstandChecker">
> <order phase="OperationInPhase"/>
> </handler>
> </phase>
> <phase name="soapmonitorPhase"/>
> </phaseOrder>
> <phaseOrder type="OutFlow">
> <!-- user can add his own phases to this area -->
> <phase name="soapmonitorPhase"/>
> <phase name="OperationOutPhase"/>
> <!--system predefined phase-->
> <!--these phase will run irrespective of the service-->
> <phase name="RMPhase"/>
> <phase name="PolicyDetermination"/>
> <phase name="MessageOut"/>
> <phase name="Security"/>
> </phaseOrder>
> <phaseOrder type="InFaultFlow">
> <phase name="Addressing">
> <handler name="AddressingBasedDispatcher"
>
> class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
> <order phase="Addressing"/>
> </handler>
> </phase>
> <phase name="Security"/>
> <phase name="PreDispatch"/>
> <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
> <handler name="RequestURIBasedDispatcher"
>
> class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
> <handler name="SOAPActionBasedDispatcher"
>
> class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
> <handler name="RequestURIOperationDispatcher"
>
> class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
> <handler name="SOAPMessageBodyBasedDispatcher"
>
> class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
> <handler name="HTTPLocationBasedDispatcher"
>
> class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
> <handler name="GenericProviderDispatcher"
>
> class="org.apache.axis2.jaxws.dispatchers.GenericProviderDispatcher"/>
> <handler name="MustUnderstandValidationDispatcher"
>
> class="org.apache.axis2.jaxws.dispatchers.MustUnderstandValidationDispatcher"/>
> </phase>
> <phase name="RMPhase"/>
> <!-- user can add his own phases to this area -->
> <phase name="OperationInFaultPhase"/>
> <phase name="soapmonitorPhase"/>
> </phaseOrder>
> <phaseOrder type="OutFaultFlow">
> <!-- user can add his own phases to this area -->
> <phase name="soapmonitorPhase"/>
> <phase name="OperationOutFaultPhase"/>
> <phase name="RMPhase"/>
> <phase name="PolicyDetermination"/>
> <phase name="MessageOut"/>
> <phase name="Security"/>
> </phaseOrder>
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]