Thanks Oleg, much appreciated.

Is there any major reason I should not opt for BrowserCompatSpec as my
default? (I can understand why you wouldn't want to, as a library
developer). We're communicating with all manner of servers (Apache, IIS,
Tomcat, WebLogic, JBOSS, Jetty, and more) of many different versions.

Thanks again,

Sam


2009/7/7 Oleg Kalnichevski <[email protected]>

> Sam Crawford wrote:
>
>> Afternoon all,
>> As mentioned in my previous mail, we've just moved to 4.0-rc1 from 4.0-b2.
>> We've just had a report of a strange application issue, which appears to
>> stem from a persistent cookie being rejected by HttpClient's
>> BestMatchSpec.
>> I've tried visiting the same page that sends the cookie in 4.0b2 and it
>> accepts it just fine.
>>
>> Log from the error is shown below.
>>
>> I've tried using BrowserCompatSpec instead, and that seems to solve it,
>> but
>> I'm hesitant to move to that without running this issue past people here
>> first. The expires attribute *looks* okay to me, but I'll gladly defer to
>> your better cookie specification knowledge!
>>
>> Thanks,
>>
>> Sam
>>
>>
>>
>> [DEBUG] headers - << Set-Cookie:
>> SESSf0c10f7f3c24e332bd057d860365d74c=kh1ic3aas0q476fjglvjoa58r2;
>> expires=Thu, 30 Jul 2009 18:51:39 GMT; path=/; domain=.
>> subdomain.company.com#]
>>
>>
> Sam,
>
> Based on the properties of the cookie HttpClient picked up Netscape Draft
> cookie spec, because only this specification permits commas in values that
> are not enclosed with quotes. Prior to 4.0-rc1 BrowserCompatSpec was chosen,
> which I felt was wrong.
>
>
> The trouble is that according to the Netscape draft, the expiry date is
> expected to be in the following format:
>
> 'EEE, dd-MMM-yyyy HH:mm:ss z'
>
> As a result the cookie gets rejected.
>
> There are two possibilities to work the problem around:
>
> (1) Override the date format using 'http.protocol.cookie-datepatterns'
> parameter. This value will apply to all cookie specs.
>
> (2) Set the browser compatibility cookie spec for that particular host
> using the 'http.protocol.cookie-policy' parameter on the HTTP request level.
>
> Hope this helps
>
> Oleg
>
>
>  [DEBUG] ResponseProcessCookies - Cookie accepted: "[version: 0][name:
>> SESSf0c10f7f3c24e332bd057d860365d74c][value:
>> kh1ic3aas0q476fjglvjoa58r2][domain: .subdomain.company.com][path:
>> /][expiry:
>> Thu Jul 30 19:51:39 BST 2009]". |#]
>>
>> [WARN] ResponseHandlerFactory - Received malformed cookie:
>> org.apache.http.cookie.MalformedCookieException: Unable to parse expires
>> attribute: Thu, 30 Jul 2009 18:51:39 GMT
>>
>>        at
>>
>> org.apache.http.impl.cookie.BasicExpiresHandler.parse(BasicExpiresHandler.java:67)
>>
>>        at
>> org.apache.http.impl.cookie.CookieSpecBase.parse(CookieSpecBase.java:94)
>>
>>        at
>>
>> org.apache.http.impl.cookie.NetscapeDraftSpec.parse(NetscapeDraftSpec.java:143)
>>
>>        at
>> org.apache.http.impl.cookie.BestMatchSpec.parse(BestMatchSpec.java:130)
>>
>>        ...
>>
>>        at
>>
>> com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)
>>
>>        at
>>
>> com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)
>>
>>        at
>> com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
>>
>>        at
>>
>> com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)
>>
>> |#]
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>

Reply via email to