java - 添加带有过期时间的 cookie 时,Cookie 过期时间必须为正整数 最大 java 日期 Aug 17, 292278994 12 :42:55 PM

标签 java firefox selenium-webdriver cookies session-cookies

我正在尝试添加以下 cookie,其到期日期为从 Firefox Web 驱动程序的 url 生成的最大 java 日期 Aug 17, 292278994 12:42:55 PM。 执行此操作时,我收到“Cookie 过期时间必须是正整数”错误。当过期日期年份被修改时,cookie 似乎不起作用。

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);
    }   

在最新的 Firefox 59 版本中出现了这种情况。较低版本的 Firefox 中的相同 url 提供 null 过期时间。

最佳答案

根据RFC 7231格式正确的日期有一个由 4 位数字组成的年份字段(见下文)。您提供的年份似乎会导致整数溢出,从而导致时间戳为负值。

 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:

   ...

关于java - 添加带有过期时间的 cookie 时,Cookie 过期时间必须为正整数 最大 java 日期 Aug 17, 292278994 12 :42:55 PM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49985796/

相关文章:

java - 返回嵌套的 HashMap

JAVA - 对象构造函数不接受参数?

java - 在 JSP 页面中获取 maxInactiveInterval 值

javascript - html5 地理定位方法 position.address.city 是否仅适用于 Firefox

javascript - 除了 Document.all,我可以使用什么?

jquery - CSS 无法在 Firefox 上加载,适用于 Chrome/Safari

java - 使用 Selenium WebDriver 和 Java 切换选项卡

javascript - 用于测试 AngularJS 的 Protractor

java - 在 Android 中使用模块化

selenium-webdriver - 在某些浏览器的 Selenium 2 中获取 session 未找到错误