jmeter-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Philippe Mouawad <philippe.moua...@gmail.com>
Subject Re: Issues when upgrading from 3 to 4.2.6 or 4.5.1
Date Tue, 15 Dec 2015 20:41:10 GMT
Hi Andrey,
Test case is failing, but it seems to be a regular HC4.5 behaviour.

What was the impact of this failing test case on JMeter side ?
It's not clear for me from your mail, if you can give a full example with
each step it wil help me understand.

Thanks

On Tue, Dec 15, 2015 at 5:56 PM, Andrey Pokhilko <apc4@ya.ru> wrote:

> It's one from 10/27/2015 06:32 PM:
>
> Hi,
>
> Today we've found an issue in using HTTPClient 4.5 in JMeter. If we just
> replace the libraries with no change to JMeter code, it stops processing
> wildcard domains for cookies. I've failed to understand if it is
> regression in HTTPClient or something else.
>
> I've managed to write a unit test for it, I can commit it into trunk if
> needed. Unit test works fine on old libraries, but fails with 4.5:
>
> package org.apache.jmeter.protocol.http.control;
>
> import org.apache.http.cookie.Cookie;
> import org.apache.jmeter.testelement.property.CollectionProperty;
> import org.junit.Assert;
> import org.junit.Test;
>
> import java.net.URL;
> import java.util.List;
>
> public class HC4CookieHandlerTest {
>
>     @Test public void testAddCookieFromHeader_wildcard() throws Exception {
>         HC4CookieHandler obj = new HC4CookieHandler("compatibility");
>         URL url = new URL("https://subdomain.bt.com/page");
>         CookieManager mgr = new CookieManager();
>         String headerLine = "SMTRYNO=1; path=/; domain=.bt.com";
>         obj.addCookieFromHeader(mgr, true, headerLine, url);
>         CollectionProperty cp = mgr.getCookies();
>         List<Cookie> res = obj.getCookiesForUrl(cp, url, false);
>         Assert.assertEquals(1, res.size());
>         for (Cookie cookie : res) {
>             Assert.assertEquals(".bt.com", cookie.getDomain());
>         }
>     }
> }
>
>
>
> Andrey Pokhilko
>
> On 12/15/2015 07:44 PM, Philippe Mouawad wrote:
> > I was searching in my mails for it :-) Andrei
> >
> > On Tue, Dec 15, 2015 at 5:40 PM, Andrey Pokhilko <apc4@ya.ru> wrote:
> >
> >> Hi,
> >>
> >> First of all - you've made awesome job on coordinating all this tedious
> >> communications with Oleg. Thanks, your contribution is invaluable in my
> >> eyes.
> >>
> >> Just a note - don't you want to include the test case I provided some
> >> time ago into this PR? To make sure the initial  case that revealed
> >> issues finally works...
> >>
> >> Andrey Pokhilko
> >>
> >> On 12/15/2015 07:31 PM, Philippe Mouawad wrote:
> >>> Hi,
> >>> I submitted a PR https://github.com/apache/jmeter/pull/62  after
> fixing
> >> the
> >>> remaining issues I think.
> >>> I still have one failing test , related to
> >>> https://issues.apache.org/jira/browse/HTTPCLIENT-1705 that I reopened.
> >>>
> >>> I commented the IgnorePolicy (testCookiePolicyIgnore) test  as we need
> >> 4.5.2
> >>> I changed testCookies2 as per Oleg note and added testCookies3.
> >>>
> >>> Please review as this is very sensitive and I would really like a
> second
> >>> eye on it.
> >>>
> >>> Thanks
> >>> Regards
> >>>
> >>> On Tue, Dec 15, 2015 at 2:16 PM, Philippe Mouawad <
> >>> philippe.mouawad@gmail.com> wrote:
> >>>
> >>>> Hi ,
> >>>> One last question, when is release of 4.5.2 expected as it fixes 2
> bugs
> >> we
> >>>> are facing in JMeter.
> >>>>
> >>>> Thanks
> >>>> Regards
> >>>>
> >>>> On Tue, Dec 15, 2015 at 2:05 PM, Philippe Mouawad <
> >>>> philippe.mouawad@gmail.com> wrote:
> >>>>
> >>>>> On Tue, Dec 15, 2015 at 9:36 AM, Oleg Kalnichevski <olegk@apache.org
> >
> >>>>> wrote:
> >>>>>
> >>>>>> On Mon, 2015-12-14 at 21:41 +0100, Philippe Mouawad wrote:
> >>>>>>> Hello Oleg,
> >>>>>>> Thanks .
> >>>>>>>
> >>>>>> Test case #testParseCookies
> >>>>>>
> >>>>>> The rest case does not look right to me. I am not sure I understand
> >> what
> >>>>>> you are trying to test here.
> >>>>>>
> >>>>> Indeed, bad copy paste.
> >>>>>
> >>>>> The test fixed below works fine with HTTPCLIENT 4.5.1 so issue is
on
> >>>>> JMeter side.
> >>>>>
> >>>>>> Test case #testParseCookies
> >>>>>>
> >>>>>>
> >>>>>> The cookie in question does not have a version attribute mandatory
> for
> >>>>>> standard (RFC 2109 and RFC 2965) cookies. Therefore it is parsed
as
> >>>>>> Netscape style cookie in which case comma is not considered
a valid
> >>>>>> header element delimiter and is treated as normal character.
> >>>>>>
> >>>>> Thanks for explanation.
> >>>>> Note that test case worked fine in HC3. Was it a bug in HC3 ?
> >>>>>
> >>>>>
> >>>>>> Oleg
> >>>>>>
> >>>>>>
> >>>>>>> Here it is:
> >>>>>>>
> >>>>>>> /*
> >>>>>>>  *
> >> ====================================================================
> >>>>>>>  * Licensed to the Apache Software Foundation (ASF) under
one
> >>>>>>>  * or more contributor license agreements.  See the NOTICE
file
> >>>>>>>  * distributed with this work for additional information
> >>>>>>>  * regarding copyright ownership.  The ASF licenses this
file
> >>>>>>>  * to you under the Apache License, Version 2.0 (the
> >>>>>>>  * "License"); you may not use this file except in compliance
> >>>>>>>  * with the License.  You may obtain a copy of the License
at
> >>>>>>>  *
> >>>>>>>  *   http://www.apache.org/licenses/LICENSE-2.0
> >>>>>>>  *
> >>>>>>>  * Unless required by applicable law or agreed to in writing,
> >>>>>>>  * software distributed under the License is distributed
on an
> >>>>>>>  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> >>>>>>>  * KIND, either express or implied.  See the License for
the
> >>>>>>>  * specific language governing permissions and limitations
> >>>>>>>  * under the License.
> >>>>>>>  *
> >> ====================================================================
> >>>>>>>  *
> >>>>>>>  * This software consists of voluntary contributions made
by many
> >>>>>>>  * individuals on behalf of the Apache Software Foundation.
 For
> more
> >>>>>>>  * information on the Apache Software Foundation, please
see
> >>>>>>>  * <http://www.apache.org/>.
> >>>>>>>  *
> >>>>>>>  */
> >>>>>>> package org.apache.http.client.protocol;
> >>>>>>>
> >>>>>>> import java.util.List;
> >>>>>>>
> >>>>>>> import org.apache.http.Header;
> >>>>>>> import org.apache.http.HttpResponse;
> >>>>>>> import org.apache.http.HttpResponseInterceptor;
> >>>>>>> import org.apache.http.HttpVersion;
> >>>>>>> import org.apache.http.client.CookieStore;
> >>>>>>> import org.apache.http.cookie.Cookie;
> >>>>>>> import org.apache.http.cookie.CookieOrigin;
> >>>>>>> import org.apache.http.cookie.CookieSpec;
> >>>>>>> import org.apache.http.cookie.SM;
> >>>>>>> import org.apache.http.impl.client.BasicCookieStore;
> >>>>>>> import org.apache.http.impl.cookie.DefaultCookieSpec;
> >>>>>>> import org.apache.http.message.BasicHttpResponse;
> >>>>>>> import org.apache.http.util.Asserts;
> >>>>>>> import org.junit.Assert;
> >>>>>>> import org.junit.Before;
> >>>>>>> import org.junit.Test;
> >>>>>>>
> >>>>>>> public class TestResponseProcessCookies {
> >>>>>>>
> >>>>>>>     private CookieOrigin cookieOrigin;
> >>>>>>>     private CookieSpec cookieSpec;
> >>>>>>>     private CookieStore cookieStore;
> >>>>>>>
> >>>>>>>     @Before
> >>>>>>>     public void setUp() throws Exception {
> >>>>>>>         this.cookieOrigin = new CookieOrigin("localhost",
80, "/",
> >>>>>> false);
> >>>>>>>         this.cookieSpec = new DefaultCookieSpec();
> >>>>>>>         this.cookieStore = new BasicCookieStore();
> >>>>>>>     }
> >>>>>>>
> >>>>>>>     @Test(expected=IllegalArgumentException.class)
> >>>>>>>     public void testResponseParameterCheck() throws Exception
{
> >>>>>>>         final HttpClientContext context =
> HttpClientContext.create();
> >>>>>>>         final HttpResponseInterceptor interceptor = new
> >>>>>>> ResponseProcessCookies();
> >>>>>>>         interceptor.process(null, context);
> >>>>>>>     }
> >>>>>>>
> >>>>>>>     @Test(expected=IllegalArgumentException.class)
> >>>>>>>     public void testContextParameterCheck() throws Exception
{
> >>>>>>>         final HttpResponse response = new
> >>>>>>> BasicHttpResponse(HttpVersion.HTTP_1_1, 200, "OK");
> >>>>>>>         final HttpResponseInterceptor interceptor = new
> >>>>>>> ResponseProcessCookies();
> >>>>>>>         interceptor.process(response, null);
> >>>>>>>     }
> >>>>>>>
> >>>>>>>     @Test
> >>>>>>>     public void testParseMultipleCookies() throws Exception
{
> >>>>>>>         final HttpResponse response = new
> >>>>>>> BasicHttpResponse(HttpVersion.HTTP_1_1, 200, "OK");
> >>>>>>>         response.addHeader(SM.SET_COOKIE, "test1=1;
> >>>>>> comment=\"how,now\",
> >>>>>>> test2=2; version=1");
> >>>>>>>
> >>>>>>>         final HttpClientContext context =
> HttpClientContext.create();
> >>>>>>>         context.setAttribute(HttpClientContext.COOKIE_ORIGIN,
> >>>>>>> this.cookieOrigin);
> >>>>>>>         context.setAttribute(HttpClientContext.COOKIE_SPEC,
> >>>>>>> this.cookieSpec);
> >>>>>>>         context.setAttribute(HttpClientContext.COOKIE_STORE,
> >>>>>>> this.cookieStore);
> >>>>>>>
> >>>>>>>         final HttpResponseInterceptor interceptor = new
> >>>>>>> ResponseProcessCookies();
> >>>>>>>         interceptor.process(response, context);
> >>>>>>>
> >>>>>>>         final List<Cookie> cookies = this.cookieStore.getCookies();
> >>>>>>>         Assert.assertNotNull(cookies);
> >>>>>>>         Assert.assertEquals(1, cookies.size());
> >>>>>>>         final Cookie cookie = cookies.get(0);
> >>>>>>>         Assert.assertEquals(0, cookie.getVersion());
> >>>>>>>         Assert.assertEquals("name1", cookie.getName());
> >>>>>>>         Assert.assertEquals("value1", cookie.getValue());
> >>>>>>>         Assert.assertEquals("localhost", cookie.getDomain());
> >>>>>>>         Assert.assertEquals("/", cookie.getPath());
> >>>>>>>     }
> >>>>>>>
> >>>>>>>     @Test
> >>>>>>>     public void testParseCookies() throws Exception {
> >>>>>>>         final HttpResponse response = new
> >>>>>>> BasicHttpResponse(HttpVersion.HTTP_1_1, 200, "OK");
> >>>>>>>         response.addHeader(SM.SET_COOKIE, "name1=value1");
> >>>>>>>
> >>>>>>>         final HttpClientContext context =
> HttpClientContext.create();
> >>>>>>>         context.setAttribute(HttpClientContext.COOKIE_ORIGIN,
> >>>>>>> this.cookieOrigin);
> >>>>>>>         context.setAttribute(HttpClientContext.COOKIE_SPEC,
> >>>>>>> this.cookieSpec);
> >>>>>>>         context.setAttribute(HttpClientContext.COOKIE_STORE,
> >>>>>>> this.cookieStore);
> >>>>>>>
> >>>>>>>         final HttpResponseInterceptor interceptor = new
> >>>>>>> ResponseProcessCookies();
> >>>>>>>         interceptor.process(response, context);
> >>>>>>>
> >>>>>>>         final List<Cookie> cookies = this.cookieStore.getCookies();
> >>>>>>>         List<Header> lstHdr = cookieSpec.formatCookies(cookies);
> >>>>>>>         StringBuilder sbHdr = new StringBuilder();
> >>>>>>>         for (Header header : lstHdr) {
> >>>>>>>             sbHdr.append(header.getValue());
> >>>>>>>         }
> >>>>>>>         org.junit.Assert.assertEquals("test1=1; test2=2",
> >>>>>> sbHdr.toString());
> >>>>>>>     }
> >>>>>>>     @Test
> >>>>>>>     public void testParseCookies2() throws Exception {
> >>>>>>>         final HttpResponse response = new
> >>>>>>> BasicHttpResponse(HttpVersion.HTTP_1_1, 200, "OK");
> >>>>>>>         response.addHeader(SM.SET_COOKIE, "test1=1;secure,
> >>>>>> test2=2;secure");
> >>>>>>>         final HttpClientContext context =
> HttpClientContext.create();
> >>>>>>>         context.setAttribute(HttpClientContext.COOKIE_ORIGIN,
> >>>>>>> this.cookieOrigin);
> >>>>>>>         context.setAttribute(HttpClientContext.COOKIE_SPEC,
> >>>>>>> this.cookieSpec);
> >>>>>>>         context.setAttribute(HttpClientContext.COOKIE_STORE,
> >>>>>>> this.cookieStore);
> >>>>>>>
> >>>>>>>         final HttpResponseInterceptor interceptor = new
> >>>>>>> ResponseProcessCookies();
> >>>>>>>         interceptor.process(response, context);
> >>>>>>>
> >>>>>>>         final List<Cookie> cookies = this.cookieStore.getCookies();
> >>>>>>>         List<Header> lstHdr = cookieSpec.formatCookies(cookies);
> >>>>>>>         StringBuilder sbHdr = new StringBuilder();
> >>>>>>>         for (Header header : lstHdr) {
> >>>>>>>             sbHdr.append(header.getValue());
> >>>>>>>         }
> >>>>>>>         org.junit.Assert.assertEquals("test1=1; test2=2",
> >>>>>> sbHdr.toString());
> >>>>>>>     }
> >>>>>>>
> >>>>>>>     @Test
> >>>>>>>     public void testNoCookieOrigin() throws Exception {
> >>>>>>>         final HttpResponse response = new
> >>>>>>> BasicHttpResponse(HttpVersion.HTTP_1_1, 200, "OK");
> >>>>>>>         response.addHeader(SM.SET_COOKIE, "name1=value1");
> >>>>>>>
> >>>>>>>         final HttpClientContext context =
> HttpClientContext.create();
> >>>>>>>         context.setAttribute(HttpClientContext.COOKIE_ORIGIN,
> null);
> >>>>>>>         context.setAttribute(HttpClientContext.COOKIE_SPEC,
> >>>>>>> this.cookieSpec);
> >>>>>>>         context.setAttribute(HttpClientContext.COOKIE_STORE,
> >>>>>>> this.cookieStore);
> >>>>>>>
> >>>>>>>         final HttpResponseInterceptor interceptor = new
> >>>>>>> ResponseProcessCookies();
> >>>>>>>         interceptor.process(response, context);
> >>>>>>>
> >>>>>>>         final List<Cookie> cookies = this.cookieStore.getCookies();
> >>>>>>>         Assert.assertNotNull(cookies);
> >>>>>>>         Assert.assertEquals(0, cookies.size());
> >>>>>>>     }
> >>>>>>>
> >>>>>>>     @Test
> >>>>>>>     public void testNoCookieSpec() throws Exception {
> >>>>>>>         final HttpResponse response = new
> >>>>>>> BasicHttpResponse(HttpVersion.HTTP_1_1, 200, "OK");
> >>>>>>>         response.addHeader(SM.SET_COOKIE, "name1=value1");
> >>>>>>>
> >>>>>>>         final HttpClientContext context =
> HttpClientContext.create();
> >>>>>>>         context.setAttribute(HttpClientContext.COOKIE_ORIGIN,
> >>>>>>> this.cookieOrigin);
> >>>>>>>         context.setAttribute(HttpClientContext.COOKIE_SPEC,
null);
> >>>>>>>         context.setAttribute(HttpClientContext.COOKIE_STORE,
> >>>>>>> this.cookieStore);
> >>>>>>>
> >>>>>>>         final HttpResponseInterceptor interceptor = new
> >>>>>>> ResponseProcessCookies();
> >>>>>>>         interceptor.process(response, context);
> >>>>>>>
> >>>>>>>         final List<Cookie> cookies = this.cookieStore.getCookies();
> >>>>>>>         Assert.assertNotNull(cookies);
> >>>>>>>         Assert.assertEquals(0, cookies.size());
> >>>>>>>     }
> >>>>>>>
> >>>>>>>     @Test
> >>>>>>>     public void testNoCookieStore() throws Exception {
> >>>>>>>         final HttpResponse response = new
> >>>>>>> BasicHttpResponse(HttpVersion.HTTP_1_1, 200, "OK");
> >>>>>>>         response.addHeader(SM.SET_COOKIE, "name1=value1");
> >>>>>>>
> >>>>>>>         final HttpClientContext context =
> HttpClientContext.create();
> >>>>>>>         context.setAttribute(HttpClientContext.COOKIE_ORIGIN,
> >>>>>>> this.cookieOrigin);
> >>>>>>>         context.setAttribute(HttpClientContext.COOKIE_SPEC,
> >>>>>>> this.cookieSpec);
> >>>>>>>         context.setAttribute(HttpClientContext.COOKIE_STORE,
null);
> >>>>>>>
> >>>>>>>         final HttpResponseInterceptor interceptor = new
> >>>>>>> ResponseProcessCookies();
> >>>>>>>         interceptor.process(response, context);
> >>>>>>>
> >>>>>>>         final List<Cookie> cookies = this.cookieStore.getCookies();
> >>>>>>>         Assert.assertNotNull(cookies);
> >>>>>>>         Assert.assertEquals(0, cookies.size());
> >>>>>>>     }
> >>>>>>>
> >>>>>>>     @Test
> >>>>>>>     public void testSetCookie2OverrideSetCookie() throws
Exception
> {
> >>>>>>>         final HttpResponse response = new
> >>>>>>> BasicHttpResponse(HttpVersion.HTTP_1_1, 200, "OK");
> >>>>>>>         response.addHeader(SM.SET_COOKIE, "name1=value1");
> >>>>>>>         response.addHeader(SM.SET_COOKIE2, "name1=value2;
> >> Version=1");
> >>>>>>>         final HttpClientContext context =
> HttpClientContext.create();
> >>>>>>>         context.setAttribute(HttpClientContext.COOKIE_ORIGIN,
> >>>>>>> this.cookieOrigin);
> >>>>>>>         context.setAttribute(HttpClientContext.COOKIE_SPEC,
> >>>>>>> this.cookieSpec);
> >>>>>>>         context.setAttribute(HttpClientContext.COOKIE_STORE,
> >>>>>>> this.cookieStore);
> >>>>>>>
> >>>>>>>         final HttpResponseInterceptor interceptor = new
> >>>>>>> ResponseProcessCookies();
> >>>>>>>         interceptor.process(response, context);
> >>>>>>>
> >>>>>>>         final List<Cookie> cookies = this.cookieStore.getCookies();
> >>>>>>>         Assert.assertNotNull(cookies);
> >>>>>>>         Assert.assertEquals(1, cookies.size());
> >>>>>>>         final Cookie cookie = cookies.get(0);
> >>>>>>>         Assert.assertEquals(1, cookie.getVersion());
> >>>>>>>         Assert.assertEquals("name1", cookie.getName());
> >>>>>>>         Assert.assertEquals("value2", cookie.getValue());
> >>>>>>>         Assert.assertEquals("localhost.local", cookie.getDomain());
> >>>>>>>         Assert.assertEquals("/", cookie.getPath());
> >>>>>>>     }
> >>>>>>>
> >>>>>>>     @Test
> >>>>>>>     public void testInvalidHeader() throws Exception {
> >>>>>>>         final HttpResponse response = new
> >>>>>>> BasicHttpResponse(HttpVersion.HTTP_1_1, 200, "OK");
> >>>>>>>         response.addHeader(SM.SET_COOKIE2, "name=value;
> >> Version=crap");
> >>>>>>>         final HttpClientContext context =
> HttpClientContext.create();
> >>>>>>>         context.setAttribute(HttpClientContext.COOKIE_ORIGIN,
> >>>>>>> this.cookieOrigin);
> >>>>>>>         context.setAttribute(HttpClientContext.COOKIE_SPEC,
> >>>>>>> this.cookieSpec);
> >>>>>>>         context.setAttribute(HttpClientContext.COOKIE_STORE,
> >>>>>>> this.cookieStore);
> >>>>>>>
> >>>>>>>         final HttpResponseInterceptor interceptor = new
> >>>>>>> ResponseProcessCookies();
> >>>>>>>         interceptor.process(response, context);
> >>>>>>>
> >>>>>>>         final List<Cookie> cookies = this.cookieStore.getCookies();
> >>>>>>>         Assert.assertNotNull(cookies);
> >>>>>>>         Assert.assertTrue(cookies.isEmpty());
> >>>>>>>     }
> >>>>>>>
> >>>>>>>     @Test
> >>>>>>>     public void testCookieRejected() throws Exception {
> >>>>>>>         final HttpResponse response = new
> >>>>>>> BasicHttpResponse(HttpVersion.HTTP_1_1, 200, "OK");
> >>>>>>>         response.addHeader(SM.SET_COOKIE2, "name=value;
Domain=
> >>>>>>> www.somedomain.com; Version=1");
> >>>>>>>
> >>>>>>>         final HttpClientContext context =
> HttpClientContext.create();
> >>>>>>>         context.setAttribute(HttpClientContext.COOKIE_ORIGIN,
> >>>>>>> this.cookieOrigin);
> >>>>>>>         context.setAttribute(HttpClientContext.COOKIE_SPEC,
> >>>>>>> this.cookieSpec);
> >>>>>>>         context.setAttribute(HttpClientContext.COOKIE_STORE,
> >>>>>>> this.cookieStore);
> >>>>>>>
> >>>>>>>         final HttpResponseInterceptor interceptor = new
> >>>>>>> ResponseProcessCookies();
> >>>>>>>         interceptor.process(response, context);
> >>>>>>>
> >>>>>>>         final List<Cookie> cookies = this.cookieStore.getCookies();
> >>>>>>>         Assert.assertNotNull(cookies);
> >>>>>>>         Assert.assertTrue(cookies.isEmpty());
> >>>>>>>     }
> >>>>>>>
> >>>>>>> }
> >>>>>>>
> >>>>>>>
> >>>>>>> On Mon, Dec 14, 2015 at 9:34 PM, Oleg Kalnichevski <
> olegk@apache.org
> >>>>>> wrote:
> >>>>>>>> On Sun, 2015-12-13 at 22:28 +0100, Philippe Mouawad
wrote:
> >>>>>>>>> Finally, for those  2 I am not sure  as per RFC6265,
to use them
> ,
> >>>>>> put
> >>>>>>>> code
> >>>>>>>>> in org.apache.http.client.protocol.TestResponseProcessCookies.
> >>>>>>>>> They worked with HC3 but it does not mean they should
work with
> >>>>>> HC4, but
> >>>>>>>> I
> >>>>>>>>> would like a confirmation:
> >>>>>>>>>
> >>>>>>>> I cannot get the tests to compile due to missing instance
> variables
> >>>>>>>> cookieOrigin, cookieSpec and cookieStore. I'll take
another look
> if
> >>>>>> you
> >>>>>>>> post the complete class.
> >>>>>>>>
> >>>>>>>> Oleg
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>>     @Test
> >>>>>>>>>     public void testParseCookies() throws Exception
{
> >>>>>>>>>         final HttpResponse response = new
> >>>>>>>>> BasicHttpResponse(HttpVersion.HTTP_1_1, 200, "OK");
> >>>>>>>>>         response.addHeader(SM.SET_COOKIE, "name1=value1");
> >>>>>>>>>
> >>>>>>>>>         final HttpClientContext context =
> >>>>>> HttpClientContext.create();
> >>>>>>>>>         context.setAttribute(HttpClientContext.COOKIE_ORIGIN,
> >>>>>>>>> this.cookieOrigin);
> >>>>>>>>>         context.setAttribute(HttpClientContext.COOKIE_SPEC,
> >>>>>>>>> this.cookieSpec);
> >>>>>>>>>         context.setAttribute(HttpClientContext.COOKIE_STORE,
> >>>>>>>>> this.cookieStore);
> >>>>>>>>>
> >>>>>>>>>         final HttpResponseInterceptor interceptor
= new
> >>>>>>>>> ResponseProcessCookies();
> >>>>>>>>>         interceptor.process(response, context);
> >>>>>>>>>
> >>>>>>>>>         final List<Cookie> cookies =
> this.cookieStore.getCookies();
> >>>>>>>>>         List<Header> lstHdr = cookieSpec.formatCookies(cookies);
> >>>>>>>>>         StringBuilder sbHdr = new StringBuilder();
> >>>>>>>>>         for (Header header : lstHdr) {
> >>>>>>>>>             sbHdr.append(header.getValue());
> >>>>>>>>>         }
> >>>>>>>>>         org.junit.Assert.assertEquals("test1=1;
test2=2",
> >>>>>>>> sbHdr.toString());
> >>>>>>>>>     }
> >>>>>>>>>     @Test
> >>>>>>>>>     public void testParseCookies2() throws Exception
{
> >>>>>>>>>         final HttpResponse response = new
> >>>>>>>>> BasicHttpResponse(HttpVersion.HTTP_1_1, 200, "OK");
> >>>>>>>>>         response.addHeader(SM.SET_COOKIE, "test1=1;secure,
> >>>>>>>> test2=2;secure");
> >>>>>>>>>         final HttpClientContext context =
> >>>>>> HttpClientContext.create();
> >>>>>>>>>         context.setAttribute(HttpClientContext.COOKIE_ORIGIN,
> >>>>>>>>> this.cookieOrigin);
> >>>>>>>>>         context.setAttribute(HttpClientContext.COOKIE_SPEC,
> >>>>>>>>> this.cookieSpec);
> >>>>>>>>>         context.setAttribute(HttpClientContext.COOKIE_STORE,
> >>>>>>>>> this.cookieStore);
> >>>>>>>>>
> >>>>>>>>>         final HttpResponseInterceptor interceptor
= new
> >>>>>>>>> ResponseProcessCookies();
> >>>>>>>>>         interceptor.process(response, context);
> >>>>>>>>>
> >>>>>>>>>         final List<Cookie> cookies =
> this.cookieStore.getCookies();
> >>>>>>>>>         List<Header> lstHdr = cookieSpec.formatCookies(cookies);
> >>>>>>>>>         StringBuilder sbHdr = new StringBuilder();
> >>>>>>>>>         for (Header header : lstHdr) {
> >>>>>>>>>             sbHdr.append(header.getValue());
> >>>>>>>>>         }
> >>>>>>>>>         org.junit.Assert.assertEquals("test1=1;
test2=2",
> >>>>>>>> sbHdr.toString());
> >>>>>>>>>     }
> >>>>>>>>>
> >>>>>>>>> Thanks
> >>>>>>>>>
> >>>>>>>>> On Sun, Dec 13, 2015 at 10:09 PM, Philippe Mouawad
<
> >>>>>>>>> philippe.mouawad@gmail.com> wrote:
> >>>>>>>>>
> >>>>>>>>>> Hi,
> >>>>>>>>>> Created https://issues.apache.org/jira/browse/HTTPCLIENT-1705
> >>>>>> with a
> >>>>>>>> Test
> >>>>>>>>>> case in it to show issue with Domain starting
with ".".
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>> Regards
> >>>>>>>>>>
> >>>>>>>>>> On Sun, Dec 13, 2015 at 9:50 PM, Philippe Mouawad
<
> >>>>>>>>>> philippe.mouawad@gmail.com> wrote:
> >>>>>>>>>>
> >>>>>>>>>>> Hi Oleg,
> >>>>>>>>>>> Created https://issues.apache.org/jira/browse/HTTPCLIENT-1705
> >>>>>> to show
> >>>>>>>>>>> issue with Cookie Header ordering.
> >>>>>>>>>>>
> >>>>>>>>>>> Regards
> >>>>>>>>>>>
> >>>>>>>>>>> On Sun, Dec 13, 2015 at 9:30 PM, Philippe
Mouawad <
> >>>>>>>>>>> philippe.mouawad@gmail.com> wrote:
> >>>>>>>>>>>
> >>>>>>>>>>>> Hi,
> >>>>>>>>>>>>  I created
> >>>>>> https://issues.apache.org/jira/browse/HTTPCLIENT-1704
> >>>>>>>> with
> >>>>>>>>>>>> JUnit test case so that you understand
the difference we have.
> >>>>>>>>>>>>
> >>>>>>>>>>>> Regards
> >>>>>>>>>>>>
> >>>>>>>>>>>> On Sat, Dec 5, 2015 at 1:26 PM, Oleg
Kalnichevski <
> >>>>>> olegk@apache.org>
> >>>>>>>>>>>> wrote:
> >>>>>>>>>>>>
> >>>>>>>>>>>>> On Fri, 2015-12-04 at 21:43 +0100,
Philippe Mouawad wrote:
> >>>>>>>>>>>>>> Thanks Oleg.
> >>>>>>>>>>>>>> But look at
> >>>>>>>>>>>>>>
> >>
> https://github.com/ubikloadpack/jmeter/blob/HC4_5/test/src/org/apache/jmeter/protocol/http/control/TestCookieManager.java#L368
> >>>>>>>>>>>>> ,
> >>>>>>>>>>>>>> it concerns IGNORE_POLICY
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> I really think there is at least
one bug.
> >>>>>>>>>>>>>> Regards
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>> Sure thing. All these issues may
well be due to bugs in HC.
> >>>>>> Could
> >>>>>>>> you
> >>>>>>>>>>>>> please though reproduce them with
unit tests that do not
> >>>>>> involve
> >>>>>>>> JMeter
> >>>>>>>>>>>>> specific code?
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> Oleg
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>> On Wed, Dec 2, 2015 at 4:00
PM, Oleg Kalnichevski <
> >>>>>>>> olegk@apache.org>
> >>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>> On Wed, 2015-12-02 at 15:51
+0100, Philippe Mouawad wrote:
> >>>>>>>>>>>>>>>> Hi Oleg,
> >>>>>>>>>>>>>>>> Thanks for answer.
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> Find my answers inline.
> >>>>>>>>>>>>>>>> Regards
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> On Wed, Dec 2, 2015
at 3:36 PM, Oleg Kalnichevski <
> >>>>>>>>>>>>> olegk@apache.org>
> >>>>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>>>> On Tue, 2015-12-01
at 22:09 +0100, Philippe Mouawad
> >>>>>> wrote:
> >>>>>>>>>>>>>>>>>> Hello,
> >>>>>>>>>>>>>>>>>> Any answer on
this question ?
> >>>>>>>>>>>>>>>>>> Thanks
> >>>>>>>>>>>>>>>>>> Regards
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>> On Sun, Nov
15, 2015 at 8:39 PM, Philippe Mouawad <
> >>>>>>>>>>>>>>>>>> philippe.mouawad@gmail.com>
wrote:
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>> Hello,
> >>>>>>>>>>>>>>>>>>> We're in
the process of migrating JMeter to last
> >>>>>>>> HttpClient
> >>>>>>>>>>>>> 4.5.1.
> >>>>>>>>>>>>>>>>>>> We are now
migrating the CookieManager to remove
> >>>>>> all
> >>>>>>>>>>>>> deprecated
> >>>>>>>>>>>>>>> code.
> >>>>>>>>>>>>>>>>>>> To test
this class, we had a JUNIT class :
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>
> >>
> https://github.com/ubikloadpack/jmeter/blob/HC4_5/test/src/org/apache/jmeter/protocol/http/control/TestCookieManager.java
> >>>>>>>>>>>>>>>>>>> Before migration,
it was still testing HC3
> >>>>>> version.
> >>>>>>>>>>>>>>>>>>> So we first
switched to HC4.23 and noticed some
> >>>>>>>> failures:
> >>>>>>>>>>>>>>>>> I am confused. Are
you using HC 4.2.3 or HC 4.5.1?
> >>>>>>>>>>>>>>>> As I wrote, first we
switched our JUnit tests to use HC4
> >>>>>>>>>>>>> Implementation
> >>>>>>>>>>>>>>> of
> >>>>>>>>>>>>>>>> CookieHandler and used
4.2.3, we got some failures
> >>>>>> compared to
> >>>>>>>>>>>>> HC3.
> >>>>>>>>>>>>>>>> Then we switched from
HC 4.2.3 to HC 4.5.1 and got other
> >>>>>>>> failures
> >>>>>>>>>>>>> all
> >>>>>>>>>>>>>>>> detailed in initial
mail.
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> What policy does
> >>>>>>>>>>>>>>>>> CookeManager use
internally?
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> It depends on tests,
you can see in the code that
> >>>>>> depending on
> >>>>>>>>>>>>> test
> >>>>>>>>>>>>>>> method
> >>>>>>>>>>>>>>>> we set different Policy
to test them.
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> You ought to be using RFC6265
policy either in strict or
> >>>>>> relaxed
> >>>>>>>>>>>>> mode
> >>>>>>>>>>>>>>> and nothing else. All other
policies have been marked as
> >>>>>>>> obsolete
> >>>>>>>>>>>>> and
> >>>>>>>>>>>>>>> have already been removed
in 5.0 (trunk).
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> Oleg
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >> ---------------------------------------------------------------------
> >>>>>>>>>>>>>>> To unsubscribe, e-mail:
> >>>>>>>> httpclient-users-unsubscribe@hc.apache.org
> >>>>>>>>>>>>>>> For additional commands,
e-mail:
> >>>>>>>>>>>>> httpclient-users-help@hc.apache.org
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >> ---------------------------------------------------------------------
> >>>>>>>>>>>>> To unsubscribe, e-mail:
> >>>>>> httpclient-users-unsubscribe@hc.apache.org
> >>>>>>>>>>>>> For additional commands, e-mail:
> >>>>>>>> httpclient-users-help@hc.apache.org
> >>>>>>>>>>>> --
> >>>>>>>>>>>> Cordialement.
> >>>>>>>>>>>> Philippe Mouawad.
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>> --
> >>>>>>>>>>> Cordialement.
> >>>>>>>>>>> Philippe Mouawad.
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>> --
> >>>>>>>>>> Cordialement.
> >>>>>>>>>> Philippe Mouawad.
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>
> >>>>>>
> >>>>> --
> >>>>> Cordialement.
> >>>>> Philippe Mouawad.
> >>>>>
> >>>>>
> >>>>>
> >>>> --
> >>>> Cordialement.
> >>>> Philippe Mouawad.
> >>>>
> >>>>
> >>>>
> >>
> >
>
>


-- 
Cordialement.
Philippe Mouawad.

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message