1)reads all http headers from the request and adds them to the msg_ctx, they were missing. 2)Allows custumized http status and http headers for rest requests(don't affect soap requests). 3) Adds missing http forbidden definitions -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Key: AXIS2C-1282 URL: https://issues.apache.org/jira/browse/AXIS2C-1282 Project: Axis2-C Issue Type: Improvement Components: httpd module Affects Versions: 1.5.0 Reporter: Luis Bilo Priority: Minor Fix For: 1.5.0 #1 Adds http headers to msg_ctx when using axis2/c module for apache I noticed however this functionality were only implemented for the standalone server. When using the axis module for apache http headers were not added to the msg_ctx so they were not accessible @ the inflow handlers level for instance. #2 Adds forbidden definition tags for http forbidden code which is missing in standard release #define AXIS2_HTTP_RESPONSE_FORBIDDEN_CODE_VAL 403 #define AXIS2_HTTP_RESPONSE_HTTP_FORBIDDEN_CODE_NAME "Forbidden" #define AXIS2_HTTP_RESPONSE_HTTP_FORBIDDEN "403 Forbidden" #3 Adds support to specify feedback for REST requests, when a module failure occurs. This issue is related to the difference between soap and rest requests. When an inflow handler fails two things can happen depending on the request type: - For SOAP requests, the inflow handler chain is broken, and all the outflow fault handlers are invoked. The response soap envelope response containing a default fault is built by axis in between these phases, so we can edit the fault accordingly @ the outflow fault handlers. - For REST requests, the inflow handler chain is also broken, but the outflow fault handlers are not invoked. This is not a problem, and is probably intended, since unlike soap there is no need to create a soap envelope. The thing is when this happens it always returned 202 ACCEPTED, which is not enough to provide any feedback to the user who made the request. @ the inflow handler is now possible to set the desired status code desired for the response, extra http headers, and/or http content. It was already possible before, changes just weren't propagated to the actual response. inflow handler example with the patch: .. // For REST requests if (doing_rest && AXIS2_FAILURE == result) { axis2_msg_ctx_set_status_code(msg_ctx, env, AXIS2_HTTP_RESPONSE_HTTP_UNAUTHORIZED_CODE_VAL); AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[Inflow][authentication_in] HTTP status code unauthorized"); axutil_stream_t *stream = axutil_stream_create_basic(env); axis2_char_t *http_content = axutil_strcat(env, AXIS2_HTTP_RESPONSE_HTTP_UNAUTHORIZED, "\n", NULL); axutil_stream_write(stream, env, http_content, axutil_strlen(http_content)); axis2_msg_ctx_set_transport_out_stream(msg_ctx, env, stream); } return result; } -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]