You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-dev@axis.apache.org by "Nandika Jayawardana (JIRA)" <ji...@apache.org> on 2009/09/19 11:23:16 UTC

[jira] Resolved: (AXIS2C-1394) Incorrect SOAP fault handling when Rampart is engaged

     [ https://issues.apache.org/jira/browse/AXIS2C-1394?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Nandika Jayawardana resolved AXIS2C-1394.
-----------------------------------------

       Resolution: Fixed
    Fix Version/s: Current (Nightly)
         Assignee: Nandika Jayawardana

Applied the fix to axis2 trunk

> 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
>            Assignee: Nandika Jayawardana
>             Fix For: Current (Nightly)
>
>
> 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.