From 83b2e90ca78e876f26b36f62be928b6ec66b5639 Mon Sep 17 00:00:00 2001 From: Daw-Ran Liou Date: Mon, 30 Sep 2019 15:48:08 -0700 Subject: [PATCH] Add reitit.ring.middleware.session ns --- .../src/reitit/ring/middleware/session.clj | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 modules/reitit-middleware/src/reitit/ring/middleware/session.clj diff --git a/modules/reitit-middleware/src/reitit/ring/middleware/session.clj b/modules/reitit-middleware/src/reitit/ring/middleware/session.clj new file mode 100644 index 00000000..2e2e7eb7 --- /dev/null +++ b/modules/reitit-middleware/src/reitit/ring/middleware/session.clj @@ -0,0 +1,23 @@ +(ns reitit.ring.middleware.session + (:require + [ring.middleware.session :as session] + [ring.middleware.session.memory :as memory])) + +(def ^:private store + "The in-memory session store. + + This is used when no `:session` key is provided to the middleware." + (atom {})) + +(def session-middleware + "Middleware for session. + + Decodes the session from a request map into the `:session` value and updates the session store + based on the response's `:session` value. + + | key | description | + | -------------|-------------| + | `:session` | `ring.middleware.session.store/SessionStore` instance. Use `ring.middleware.session.memory/MemoryStore` by default." + {:name :session + :compile (fn [{:keys [session] :or {session {:store (memory/memory-store store)}}} _] + {:wrap #(session/wrap-session % session)})})