axis-c-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Luis Bilo (JIRA)" <j...@apache.org>
Subject [jira] Created: (AXIS2C-1282) 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
Date Mon, 03 Nov 2008 10:48:44 GMT
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: axis-c-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-c-dev-help@ws.apache.org


Mime
View raw message