[
https://issues.apache.org/jira/browse/AXIS2-5908?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17926861#comment-17926861
]
Robert Lazarski commented on AXIS2-5908:
----------------------------------------
I'm unclear on the issue here since using CACHED_HTTP_STATE is the preferred
way to customize this behavior.
If interested in getting a feature implemented in Axis2, the most reliable way
is a GitHub PR. I can work with you on that.
Please note that 2.0.0 is going out very soon, based off of httpclient5.
> There is no provision to set the CACHED_HTTP_STATE with HttpContext object
> --------------------------------------------------------------------------
>
> Key: AXIS2-5908
> URL: https://issues.apache.org/jira/browse/AXIS2-5908
> Project: Axis2
> Issue Type: Bug
> Components: transports
> Affects Versions: 1.7.4
> Reporter: Pavan Kumar Sangyam
> Priority: Major
>
> *Background:*
> *Current Approach:* Currently we are using “commons-httpclient3:” to provide
> stateful webservice capability in our product through httpclient3. As Http
> state management can be maintained with HttpState object in httpClient3, we
> implemented this as follows:
> * Implementation of HttpClient3 in Axis2 Client
> var myHttpState = new
> Packages.org.apache.commons.httpclient.HttpState();
>
> stub._getServiceClient().getOptions().setProperty('*CACHED_HTTP_STATE*',myHttpState);
>
> *Problem with current approach:* Since using httpclient3 is said to be NOT
> secured we want to go-head and use httpclient4. As Http state can be
> maintained with HttpContext object in httpClient4. However, unlike
> HttpState, the current Axis2 Client API implementation does not expose the
> HttpContext to set the HttpClient4.
>
> *Proposed Solution/Fix:* To fix the above problem and make it work, we made
> following changes to the axis2-transport-http-1.7.4.jar that worked to make
> stateful behavior. We would like to go head with the fix and need your
> consent on the next steps in contributing this code so that it continues to
> behave the same way like it used to when using httpclient3.
> * Following change that need to include the Axis2 Client API to retrieve the
> httpContext.
> HttpContext localContext=
>
> (HttpContext)msgContext.getProperty(HTTPConstants.*_CACHED_HTTP_STATE);_*
>
> For HttpClient4, HttpContext is instantiated and not allowed set the
> HttpContext with options
> HttpContext localContext = new BasicHttpContext();
> We replaced the above code with following to get the HttpConext with
> getOptions()
> HttpContext localContext=
> (HttpContext)msgContext.getProperty(HTTPConstants.*_CACHED_HTTP_STATE);_*
> _So that, Client can set the cookie in the httpContext_ _to send it to
> server._
> _org.apache.http.protocol.HttpContext localContext = new
> org.apache.http.protocol.BasicHttpContext();_
> _org.apache.http.client.CookieStore cookieStore = new
> org.apache.http.impl.client.BasicCookieStore();_
> _org.apache.http.impl.cookie.BasicClientCookie newCookie=new
> org.apache.http.impl.cookie.BasicClientCookie("pin","1234");_
> _cookieStore.addCookie(newCookie);_
> _localContext.setAttribute(HttpClientContext.COOKIE_STORE,
> cookieStore);_
>
> _stub._getServiceClient().getOptions().setProperty("CACHED_HTTP_STATE",
> localContext);_
>
>
>
>
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]