You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hc.apache.org by Oleg Kalnichevski <o....@dplanet.ch> on 2003/03/08 22:37:11 UTC
Re: [PATCH] HttpClient was rejecting some cookies a browser would
accept
Hi Padraig
The patch has been applied. Many thanks for having contributed it
Cheers
Oleg
On Fri, 2003-03-07 at 16:14, Padraig O'hIceadha wrote:
> Hi Oleg,
>
> That would be really excellent.
>
> Thanks a lot,
>
> Padraig
>
> Kalnichevski, Oleg wrote:
>
> >Hi Padraig
> >
> >Makes sense to me. If no one loudly objects, I'll apply the patch by Monday the latest (or shall I say monday? ;-))
> >
> >Cheers
> >
> >Oleg
> >
> >-----Original Message-----
> >From: Padraig O'hIceadha [mailto:Padraig.OhIceadha@sabre.com]
> >Sent: Freitag, 7. März 2003 16:00
> >To: commons-httpclient-dev@jakarta.apache.org
> >Subject: [PATCH] HttpClient was rejecting some cookies a browser would
> >accept
> >
> >
> >Hi,
> >
> > I found that cookies generated by WebLogic were being rejected by
> >HttpClient as it didn't like the format of the Expires field.
> >
> > From reading the specs I think that HttpClient is not at fault, in
> >that WebLogic does not seem to be using a 100% correct date format.
> >
> > However their error is minor (it uses incorrect case for the
> >day and month names) and I think it would be useful if HttpClient
> >were forgiving in this regard.
> >
> > For example, WebLogic sends
> >expires=thursday, 06-mar-2003 04:44:00 GMT
> > where it should send
> >expires=Thursday, 06-Mar-2003 04:44:00 GMT
> >
> > This causes a problem in the parse method in HeaderElement
> >where it has extra code for recognising when a , in the cookie
> >string is part of a date.
> >
> > To check this it does a case sensitive match against all the
> >valid combinations ("Monday", "Tuesday" etc). As the match is
> >case sensitive it doesn't recognise the weblogic expires as a
> >date and the expires field ends up simply as "thursday", which
> >later fails parsing by SimpleDateFormat.
> >
> > The patch below changes this to use a case insensitive
> >comparison.
> >
> > Regards,
> >
> > Padraig
> >
> >Index: HeaderElement.java
> >===================================================================
> >RCS file:
> >/home/cvspublic/jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/HeaderElement.java,v
> >retrieving revision 1.16
> >diff -u -r1.16 HeaderElement.java
> >--- HeaderElement.java 31 Jan 2003 00:33:36 -0000 1.16
> >+++ HeaderElement.java 7 Mar 2003 14:41:07 -0000
> >@@ -300,22 +300,24 @@
> > * the expires date format is "Wdy, DD-Mon-YY HH:MM:SS
> >GMT".
> > * Notice that there is always comma(',') sign.
> > * For the general cases, rfc1123-date, rfc850-date.
> >+ * NB some servers send the day & month names in the
> >wrong case
> > */
> > if (tokenizer.hasMoreTokens()) {
> >- if (nextToken.endsWith("Mon")
> >- || nextToken.endsWith("Tue")
> >- || nextToken.endsWith("Wed")
> >- || nextToken.endsWith("Thu")
> >- || nextToken.endsWith("Fri")
> >- || nextToken.endsWith("Sat")
> >- || nextToken.endsWith("Sun")
> >- || nextToken.endsWith("Monday")
> >- || nextToken.endsWith("Tuesday")
> >- || nextToken.endsWith("Wednesday")
> >- || nextToken.endsWith("Thursday")
> >- || nextToken.endsWith("Friday")
> >- || nextToken.endsWith("Saturday")
> >- || nextToken.endsWith("Sunday")) {
> >+ String possibleExpiresField = nextToken.toLowerCase();
> >+ if (possibleExpiresField.endsWith("mon")
> >+ || possibleExpiresField.endsWith("tue")
> >+ || possibleExpiresField.endsWith("wed")
> >+ || possibleExpiresField.endsWith("thu")
> >+ || possibleExpiresField.endsWith("fri")
> >+ || possibleExpiresField.endsWith("sat")
> >+ || possibleExpiresField.endsWith("sun")
> >+ || possibleExpiresField.endsWith("monday")
> >+ || possibleExpiresField.endsWith("tuesday")
> >+ || possibleExpiresField.endsWith("wednesday")
> >+ || possibleExpiresField.endsWith("thursday")
> >+ || possibleExpiresField.endsWith("friday")
> >+ || possibleExpiresField.endsWith("saturday")
> >+ || possibleExpiresField.endsWith("sunday")) {
> >
> > nextToken += "," + tokenizer.nextToken();
> > }
> >
> >
> >---------------------------------------------------------------------
> >To unsubscribe, e-mail: commons-httpclient-dev-unsubscribe@jakarta.apache.org
> >For additional commands, e-mail: commons-httpclient-dev-help@jakarta.apache.org
> >
> >
> >---------------------------------------------------------------------
> >To unsubscribe, e-mail: commons-httpclient-dev-unsubscribe@jakarta.apache.org
> >For additional commands, e-mail: commons-httpclient-dev-help@jakarta.apache.org
> >
> >
> >
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: commons-httpclient-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: commons-httpclient-dev-help@jakarta.apache.org
>
Re: [PATCH] HttpClient was rejecting some cookies a browser would
accept
Posted by Padraig O'hIceadha <Pa...@sabre.com>.
Hi Oleg,
Oleg Kalnichevski wrote:
>Hi Padraig
>The patch has been applied. Many thanks for having contributed it
>
Thanks a lot. With such quick response I won't hesitate to
contribute further patches to HttpClient in the future !
Regards,
Padraig
>Cheers
>
>Oleg
>
>On Fri, 2003-03-07 at 16:14, Padraig O'hIceadha wrote:
>
>
>>Hi Oleg,
>>
>> That would be really excellent.
>>
>> Thanks a lot,
>>
>> Padraig
>>
>>Kalnichevski, Oleg wrote:
>>
>>
>>
>>>Hi Padraig
>>>
>>>Makes sense to me. If no one loudly objects, I'll apply the patch by Monday the latest (or shall I say monday? ;-))
>>>
>>>Cheers
>>>
>>>Oleg
>>>
>>>-----Original Message-----
>>>From: Padraig O'hIceadha [mailto:Padraig.OhIceadha@sabre.com]
>>>Sent: Freitag, 7. März 2003 16:00
>>>To: commons-httpclient-dev@jakarta.apache.org
>>>Subject: [PATCH] HttpClient was rejecting some cookies a browser would
>>>accept
>>>
>>>
>>>Hi,
>>>
>>> I found that cookies generated by WebLogic were being rejected by
>>>HttpClient as it didn't like the format of the Expires field.
>>>
>>> From reading the specs I think that HttpClient is not at fault, in
>>>that WebLogic does not seem to be using a 100% correct date format.
>>>
>>> However their error is minor (it uses incorrect case for the
>>>day and month names) and I think it would be useful if HttpClient
>>>were forgiving in this regard.
>>>
>>> For example, WebLogic sends
>>>expires=thursday, 06-mar-2003 04:44:00 GMT
>>> where it should send
>>>expires=Thursday, 06-Mar-2003 04:44:00 GMT
>>>
>>> This causes a problem in the parse method in HeaderElement
>>>where it has extra code for recognising when a , in the cookie
>>>string is part of a date.
>>>
>>> To check this it does a case sensitive match against all the
>>>valid combinations ("Monday", "Tuesday" etc). As the match is
>>>case sensitive it doesn't recognise the weblogic expires as a
>>>date and the expires field ends up simply as "thursday", which
>>>later fails parsing by SimpleDateFormat.
>>>
>>> The patch below changes this to use a case insensitive
>>>comparison.
>>>
>>> Regards,
>>>
>>> Padraig
>>>
>>>Index: HeaderElement.java
>>>===================================================================
>>>RCS file:
>>>/home/cvspublic/jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/HeaderElement.java,v
>>>retrieving revision 1.16
>>>diff -u -r1.16 HeaderElement.java
>>>--- HeaderElement.java 31 Jan 2003 00:33:36 -0000 1.16
>>>+++ HeaderElement.java 7 Mar 2003 14:41:07 -0000
>>>@@ -300,22 +300,24 @@
>>> * the expires date format is "Wdy, DD-Mon-YY HH:MM:SS
>>>GMT".
>>> * Notice that there is always comma(',') sign.
>>> * For the general cases, rfc1123-date, rfc850-date.
>>>+ * NB some servers send the day & month names in the
>>>wrong case
>>> */
>>> if (tokenizer.hasMoreTokens()) {
>>>- if (nextToken.endsWith("Mon")
>>>- || nextToken.endsWith("Tue")
>>>- || nextToken.endsWith("Wed")
>>>- || nextToken.endsWith("Thu")
>>>- || nextToken.endsWith("Fri")
>>>- || nextToken.endsWith("Sat")
>>>- || nextToken.endsWith("Sun")
>>>- || nextToken.endsWith("Monday")
>>>- || nextToken.endsWith("Tuesday")
>>>- || nextToken.endsWith("Wednesday")
>>>- || nextToken.endsWith("Thursday")
>>>- || nextToken.endsWith("Friday")
>>>- || nextToken.endsWith("Saturday")
>>>- || nextToken.endsWith("Sunday")) {
>>>+ String possibleExpiresField = nextToken.toLowerCase();
>>>+ if (possibleExpiresField.endsWith("mon")
>>>+ || possibleExpiresField.endsWith("tue")
>>>+ || possibleExpiresField.endsWith("wed")
>>>+ || possibleExpiresField.endsWith("thu")
>>>+ || possibleExpiresField.endsWith("fri")
>>>+ || possibleExpiresField.endsWith("sat")
>>>+ || possibleExpiresField.endsWith("sun")
>>>+ || possibleExpiresField.endsWith("monday")
>>>+ || possibleExpiresField.endsWith("tuesday")
>>>+ || possibleExpiresField.endsWith("wednesday")
>>>+ || possibleExpiresField.endsWith("thursday")
>>>+ || possibleExpiresField.endsWith("friday")
>>>+ || possibleExpiresField.endsWith("saturday")
>>>+ || possibleExpiresField.endsWith("sunday")) {
>>>
>>> nextToken += "," + tokenizer.nextToken();
>>> }
>>>
>>>
>>>---------------------------------------------------------------------
>>>To unsubscribe, e-mail: commons-httpclient-dev-unsubscribe@jakarta.apache.org
>>>For additional commands, e-mail: commons-httpclient-dev-help@jakarta.apache.org
>>>
>>>
>>>---------------------------------------------------------------------
>>>To unsubscribe, e-mail: commons-httpclient-dev-unsubscribe@jakarta.apache.org
>>>For additional commands, e-mail: commons-httpclient-dev-help@jakarta.apache.org
>>>
>>>
>>>
>>>
>>>
>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: commons-httpclient-dev-unsubscribe@jakarta.apache.org
>>For additional commands, e-mail: commons-httpclient-dev-help@jakarta.apache.org
>>
>>
>
>
>
>