Add fix for HTTP::Cookies

This commit is contained in:
Omar Roth 2018-03-16 12:06:03 -05:00
parent d8372aa83e
commit 6581f96b70
2 changed files with 29 additions and 0 deletions

28
src/cookie_fix.cr Normal file
View file

@ -0,0 +1,28 @@
module HTTP
class Cookie
module Parser
SetCookieStringFix = /^#{Regex::CookiePair}(?:;\s*#{Regex::CookieAV})*$/
def parse_set_cookie(header)
match = header.match(SetCookieStringFix)
return unless match
expires = if max_age = match["max_age"]?
Time.now + max_age.to_i.seconds
else
parse_time(match["expires"]?)
end
Cookie.new(
match["name"], match["value"],
path: match["path"]? || "/",
expires: expires,
domain: match["domain"]?,
secure: match["secure"]? != nil,
http_only: match["http_only"]? != nil,
extension: match["extension"]?
)
end
end
end
end

View file

@ -20,6 +20,7 @@ require "pg"
require "xml" require "xml"
require "yaml" require "yaml"
require "./helpers" require "./helpers"
require "./cookie_fix"
CONFIG = Config.from_yaml(File.read("config/config.yml")) CONFIG = Config.from_yaml(File.read("config/config.yml"))