File tree Expand file tree Collapse file tree 2 files changed +18
-6
lines changed
test/ring/middleware/test Expand file tree Collapse file tree 2 files changed +18
-6
lines changed Original file line number Diff line number Diff line change 106
106
(for [[key value] attrs]
107
107
(let [attr (name (set-cookie-attrs key))]
108
108
(cond
109
- (satisfies? CookieInterval value) (str " ;" attr " =" (->seconds value))
110
- (satisfies? CookieDateTime value) (str " ;" attr " =" (rfc822-format value))
111
- (true ? value) (str " ;" attr)
109
+ (satisfies? CookieInterval value) (str " ; " attr " =" (->seconds value))
110
+ (satisfies? CookieDateTime value) (str " ; " attr " =" (rfc822-format value))
111
+ (true ? value) (str " ; " attr)
112
112
(false ? value) " "
113
- (= :same-site key) (str " ;" attr " =" (same-site-values value))
114
- :else (str " ;" attr " =" value)))))
113
+ (= :same-site key) (str " ; " attr " =" (same-site-values value))
114
+ :else (str " ; " attr " =" value)))))
115
115
116
116
(defn- write-cookies [cookies encoder]
117
117
(for [[key value] cookies]
Original file line number Diff line number Diff line change 47
47
(:headers resp)))))
48
48
49
49
(defn- split-set-cookie [headers]
50
- (letfn [(split-header [v] (set (mapcat #(str/split % #";" ) v)))]
50
+ (letfn [(split-header [v] (set (mapcat #(str/split % #"; ? " ) v)))]
51
51
(update-in headers [" Set-Cookie" ] split-header)))
52
52
53
53
(deftest wrap-cookies-set-extra-attrs
169
169
0 0 0 0
170
170
(ZoneId/of " UTC" )))
171
171
172
+ (deftest wrap-cookies-spaces-after-semicolons-test
173
+ (let [cookies {" a" {:value " b"
174
+ :path " /" , :secure true , :same-site :lax
175
+ :expires (zoned-date-time 2015 12 31 )
176
+ :max-age (Duration/between (zoned-date-time 2012 )
177
+ (zoned-date-time 2015 ))}}
178
+ handler (constantly {:cookies cookies})
179
+ resp ((wrap-cookies handler) {})
180
+ header (first (get-in resp [:headers " Set-Cookie" ]))]
181
+ (is (re-matches #"([^;]+; )+([^;]+)" header)
182
+ " spaces after semicolons in Set-Cookie" )))
183
+
172
184
(deftest wrap-cookies-accepts-max-age-from-java-time
173
185
(let [cookies {" a" {:value " b" , :path " /" ,
174
186
:secure true , :http-only true ,
You can’t perform that action at this time.
0 commit comments