Uploaded image for project: 'Axis2-C'
  1. Axis2-C
  2. AXIS2C-1394

Incorrect SOAP fault handling when Rampart is engaged

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 1.7.0
    • core/engine
    • None

    Description

      When axis2_msg_recv_receive_impl detects that response is a SOAP fault, it doesn't send this response but delegates sending to HTTP transport (http_transport_utils.c). But the fault message context created by axis2_engine_create_fault_msg_ctx doesn't copy the base axis2 context contained in input message context, as in axis2_core_utils_create_out_msg_ctx used in normal processing. So Rampart context is not found, Rampart fails to process and SOAP fault is send without security headers.

      Adding this code at the end of axis2_engine_create_fault_msg_ctx seems to correct the problem but I don't enough master Axis2/C to know if it's allways ok :

      if ( 1 == 1 ) { // in order to localize ctx declaration
      axis2_ctx_t *ctx = axis2_msg_ctx_get_base(processing_context, env);
      if (ctx)
      {
      axis2_ctx_t *new_ctx = axis2_msg_ctx_get_base(fault_ctx, env);
      if (new_ctx)

      { axis2_ctx_set_property_map(new_ctx, env, axis2_ctx_get_property_map(ctx, env)); }

      }

      Problem was detected with WSO2 WSF/PHP and I haven't simple Rampart-C test to submit.

      Attachments

        Activity

          People

            nandika Korale Gamaralalage Nandika Chandrasiri Jayawardana
            mireaux Francois Mireaux
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: