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.