[ https://issues.apache.org/jira/browse/AXIS2C-1282?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Nandika Jayawardana reassigned AXIS2C-1282: ------------------------------------------- Assignee: Nandika Jayawardana > 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 > Assignee: Nandika Jayawardana > Priority: Minor > Fix For: 1.6.0 > > Attachments: apache_http_headers_and_rest_enhancement.diff, > http_forbidden.diff > > Original Estimate: 1h > Remaining Estimate: 1h > > #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.