[ 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: java-dev-unsubscr...@axis.apache.org For additional commands, e-mail: java-dev-h...@axis.apache.org