diff --git a/backend/src/app/http/middleware.clj b/backend/src/app/http/middleware.clj index 23e229652..40aee10d2 100644 --- a/backend/src/app/http/middleware.clj +++ b/backend/src/app/http/middleware.clj @@ -78,13 +78,12 @@ (raise cause)))] (fn [request respond raise] - (when-let [request (try - (process-request request) - (catch RuntimeException cause - (handle-error raise (or (.getCause cause) cause))) - (catch Throwable cause - (handle-error raise cause)))] - (handler request respond raise))))) + (let [request (ex/try! (process-request request))] + (if (ex/exception? request) + (if (instance? RuntimeException request) + (handle-error raise (or (ex/cause request) request)) + (handle-error raise request)) + (handler request respond raise)))))) (def parse-request {:name ::parse-request diff --git a/backend/src/app/http/session.clj b/backend/src/app/http/session.clj index bc409de18..5d136ac44 100644 --- a/backend/src/app/http/session.clj +++ b/backend/src/app/http/session.clj @@ -178,10 +178,15 @@ (clear-authenticated-cookie)))))) (def middleware-1 - (letfn [(wrap-handler [manager handler request respond raise] - (when-let [cookie (some->> (cf/get :auth-token-cookie-name default-auth-token-cookie-name) - (yrq/get-cookie request))] - (->> (decode manager (:value cookie)) + (letfn [(decode-cookie [manager cookie] + (if-let [value (:value cookie)] + (decode manager value) + (p/resolved nil))) + + (wrap-handler [manager handler request respond raise] + (let [cookie (some->> (cf/get :auth-token-cookie-name default-auth-token-cookie-name) + (yrq/get-cookie request))] + (->> (decode-cookie manager cookie) (p/fnly (fn [claims _] (cond-> request (some? claims) (assoc :session-token-claims claims)