Incorrect SOAP fault handling when Rampart is engaged
-----------------------------------------------------

                 Key: AXIS2C-1394
                 URL: https://issues.apache.org/jira/browse/AXIS2C-1394
             Project: Axis2-C
          Issue Type: Bug
          Components: core/engine
    Affects Versions: Current (Nightly)
            Reporter: Francois Mireaux


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.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to