2014-01-22 28 views
1

Set-Cookie'expires'屬性解析錯誤使用Rails 4.0.0Ruby ruby 2.0.0p353 (2013-11-22 revision 43784) [x86_64-linux]似乎無法解析Set-Cookie標頭的expires屬性。由於格式

HTTP Response 

< HTTP/1.1 200 OK 
< Server: Apache-Coyote/1.1 
< Set-Cookie: auth=YWRtaW46MTM5MDI5NzA4MzNjk3MjZjNWI1N2NjMjQzMjE2MjJlYjpBQklRVU8; 
    Expires=Wed, 23-Jan-2014 09:38:02 GMT; Path=/api; HttpOnly 
< Set-Cookie: JSESSIONID=5AF33D5F3ED6741038E14202935A0AD5.node1; Path=/api/; HttpOnly 

登錄控制器的OUPUTS cookies object

{"auth"=>"YWRtaW46MTM5MDI5NzA4MzNjk3MjZjNWI1N2NjMjQzMjE2MjJlYjpBQklRVU8", "Expires"=>"Wed", "Path"=>"%2Fapi%2F", "JSESSIONID"=>"4F9344E3A75554E26206FD32F1793AD5.node1"} 

在這裏,我看到了兩個問題。

  • 屬性的解析輸出唯一的「星期三」
  • JSESSIONID cookie被遺漏的路徑

Rails issues和谷歌上搜索我找不到任何東西。我一直在查看文檔,找不到與此問題相關的任何內容。

所以我認爲我可能會忽略或遺漏一個配置屬性,以明確地說RailsExpires屬性格式。

+0

這不是鐵軌問題。 'CGI :: Cookie#parse'是一個清障車。目前試圖瞭解WTP。 – mudasobwa

+2

看起來這是一個[衆所周知的問題](http://rubyforge.org/tracker/?func=detail&atid=1698&aid=1972&group_id=426),沒人關心。不過,我建議你手動解析它。 – mudasobwa

+0

@mudasobwa謝謝,我會看看如何去做。 – ssedano

回答

0

如果你想解析cookies,這段代碼可能會有所幫助。

out = "Expires=Wed, 23-Jan-2014 09:38:02 GMT; Path=/api; HttpOnly" 
out.split(';').map { |c| c.split('=') }.inject({}) { |result, element|  result[element.first] = element.last; result }