[ 
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

Reply via email to