Reputation: 71
I am trying to add the following cookie with expiry date as Maximum java date Aug 17, 292278994 12:42:55 PM generated from a url to firefox web driver. On doing this I get "Cookie expiry must be a positive integer" error. When year of the expiry date is modified, the cookie doesn't seem to work.
Cookie:
{
{
"name": "..dbcjjd",
"value": "1.2.3.4",
"path": "/",
"domain": "abc.com",
"expiry": "Aug 17, 292278994 12:42:55 PM",
"isSecure": true,
"isHttpOnly": false
},
{
"name": "..dbcjjd",
"value": "1.2.3.4",
"path": "/",
"domain": "abc.com",
"expiry": "Jun 22, 2018 4:11:20 PM",
"isSecure": true,
"isHttpOnly": false
}
}
Adding Cookie to driver:
for(Cookie ck : cookieList)
{
Cookie newCookie = new Cookie(ck.getName(),ck.getValue(),domain,
ck.getPath(), ck.getExpiry(), ck.isSecure());
webDriver.manage().addCookie(newCookie);
}
This was experienced in latest firefox 59 version. The same url in lower firefox version provided null expiry.
Upvotes: 0
Views: 500
Reputation: 86774
According to RFC 7231 a properly formatted date has a year field that consists of 4 digits (see below). It appears that the year you provided causes integer overflow resulting in a negative value for the timestamp.
Preferred format: IMF-fixdate = day-name "," SP date1 SP time-of-day SP GMT ; fixed length/zone/capitalization subset of the format ; see Section 3.3 of [RFC5322] day-name = %x4D.6F.6E ; "Mon", case-sensitive / %x54.75.65 ; "Tue", case-sensitive / %x57.65.64 ; "Wed", case-sensitive / %x54.68.75 ; "Thu", case-sensitive / %x46.72.69 ; "Fri", case-sensitive / %x53.61.74 ; "Sat", case-sensitive / %x53.75.6E ; "Sun", case-sensitive date1 = day SP month SP year ; e.g., 02 Jun 1982 day = 2DIGIT month = %x4A.61.6E ; "Jan", case-sensitive / %x46.65.62 ; "Feb", case-sensitive / %x4D.61.72 ; "Mar", case-sensitive / %x41.70.72 ; "Apr", case-sensitive / %x4D.61.79 ; "May", case-sensitive / %x4A.75.6E ; "Jun", case-sensitive / %x4A.75.6C ; "Jul", case-sensitive / %x41.75.67 ; "Aug", case-sensitive / %x53.65.70 ; "Sep", case-sensitive / %x4F.63.74 ; "Oct", case-sensitive / %x4E.6F.76 ; "Nov", case-sensitive / %x44.65.63 ; "Dec", case-sensitive year = 4DIGIT GMT = %x47.4D.54 ; "GMT", case-sensitive time-of-day = hour ":" minute ":" second ; 00:00:00 - 23:59:60 (leap second) hour = 2DIGIT minute = 2DIGIT second = 2DIGIT Obsolete formats: ...
Upvotes: 1