Permalink
Browse files
wrap-session no longer dies on nil response
- Loading branch information...
|
|
@@ -36,17 +36,18 @@ |
|
|
(fn [request]
|
|
|
(let [sess-key (get-in request [:cookies cookie-name :value])
|
|
|
session (read-session store sess-key)
|
|
|
- request (assoc request :session session)
|
|
|
- response (handler request)
|
|
|
- sess-key* (if (contains? response :session)
|
|
|
- (if (response :session)
|
|
|
- (write-session store sess-key (response :session))
|
|
|
- (if sess-key
|
|
|
- (delete-session store sess-key))))
|
|
|
- response (dissoc response :session)
|
|
|
- cookie {cookie-name (merge cookie-attrs
|
|
|
- (response :session-cookie-attrs)
|
|
|
- {:value sess-key*})}]
|
|
|
- (if (and sess-key* (not= sess-key sess-key*))
|
|
|
- (assoc response :cookies (merge (response :cookies) cookie))
|
|
|
- response)))))))
|
|
|
+ request (assoc request :session session)]
|
|
|
+ (if-let [response (handler request)]
|
|
|
+ (let [sess-key* (if (contains? response :session)
|
|
|
+ (if-let [session (response :session)]
|
|
|
+ (write-session store sess-key session)
|
|
|
+ (if sess-key
|
|
|
+ (delete-session store sess-key))))
|
|
|
+ response (dissoc response :session)
|
|
|
+ cookie {cookie-name
|
|
|
+ (merge cookie-attrs
|
|
|
+ (response :session-cookie-attrs)
|
|
|
+ {:value sess-key*})}]
|
|
|
+ (if (and sess-key* (not= sess-key sess-key*))
|
|
|
+ (assoc response :cookies (merge (response :cookies) cookie))
|
|
|
+ response)))))))))
|
|
|
@@ -104,3 +104,7 @@ |
|
|
response (handler {:cookies {}})]
|
|
|
(is (= (get-in response [:headers "Set-Cookie"])
|
|
|
["ring-session=foo%3Abar;Max-Age=5;Path=/"]))))
|
|
|
+
|
|
|
+(deftest session-response-is-nil
|
|
|
+ (let [handler (wrap-session (constantly nil))]
|
|
|
+ (is (nil? (handler {})))))
|
0 comments on commit
f782316