Skip to content

Commit 945055b

Browse files
committed
fix(cookies): fix compatibility with rack 3
Do not join cookies with new like if they weren't before
1 parent 8b1029c commit 945055b

File tree

1 file changed

+5
-7
lines changed

1 file changed

+5
-7
lines changed

lib/secure_headers/middleware.rb

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,12 @@ def call(env)
2020

2121
# inspired by https://github.com/tobmatth/rack-ssl-enforcer/blob/6c014/lib/rack/ssl-enforcer.rb#L183-L194
2222
def flag_cookies!(headers, config)
23-
if cookies = headers["Set-Cookie"]
24-
# Support Rails 2.3 / Rack 1.1 arrays as headers
25-
cookies = cookies.split("\n") unless cookies.is_a?(Array)
23+
cookies = headers["Set-Cookie"]
24+
return unless cookies
2625

27-
headers["Set-Cookie"] = cookies.map do |cookie|
28-
SecureHeaders::Cookie.new(cookie, config).to_s
29-
end.join("\n")
30-
end
26+
cookies_array = cookies.is_a?(Array) ? cookies : cookies.split("\n")
27+
secured_cookies = cookies_array.map { |cookie| SecureHeaders::Cookie.new(cookie, config).to_s }
28+
headers["Set-Cookie"] = cookies.is_a?(Array) ? secured_cookies : secured_cookies.join("\n")
3129
end
3230

3331
# disable Secure cookies for non-https requests

0 commit comments

Comments
 (0)