Как изменить сеанс в промежуточном программном обеспечении Ring? Я в основном хочу иметь историю доступа к URL-адресам, хранящимся там, и я просто не могу заставить сеанс хранить значения.Кольцо: Как изменить сеанс в промежуточном программном обеспечении
Сессии корректно работают в другом месте в коде, где я могу возвращать ответы. Я предполагаю, что это имеет какое-то отношение к проблеме, и я не понимаю, как работает middlewares.
Вот мой текущий код
(defn wrap-history [handler]
(fn [req]
(handler (assoc-in req [:session :history]
(vec (concat (-> req :session :history) [(request/request-url req)]))))))
Вот приложение (я использую кольцо-умолчанию, который включает в себя сеанс промежуточного уровня)
(def app
(-> all-routes
(wrap-history)
(wrap-defaults (assoc-in site-defaults [:security :anti-forgery] false))))
Ответ, вероятно, довольно легко (вероятно, что-то делать с тем, как вернуть ответ от промежуточного программного обеспечения вместо запроса), но я просто не могу найти правильную документацию для этого.