Are you right, well i'm using the luminus template, it have ring's flash wrapper by default is not?
(ns my-app.middleware (:require [my-app.env :refer [defaults]] [cognitect.transit :as transit] [clojure.tools.logging :as log] [my-app.layout :refer [*app-context* error-page]] [ring.middleware.anti-forgery :refer [wrap-anti-forgery]] [ring.middleware.webjars :refer [wrap-webjars]] [muuntaja.core :as muuntaja] [muuntaja.format.transit :as transit-format] [muuntaja.middleware :refer [wrap-format wrap-params]] [my-app.config :refer [env]] [ring.middleware.flash :refer [wrap-flash]] [immutant.web.middleware :refer [wrap-session]] [ring.middleware.defaults :refer [site-defaults wrap-defaults]] [buddy.auth.middleware :refer [wrap-authentication wrap- authorization]] [buddy.auth.accessrules :refer [restrict]] [buddy.auth :refer [authenticated?]] [buddy.auth.backends.session :refer [session-backend]] [taoensso.tempura :as tempura :refer [tr]] [my-app.i18n :as i18n :refer [tconfig]]) (:import [javax.servlet ServletContext] [org.joda.time ReadableInstant])) (defn wrap-context [handler] (fn [request] (binding [*app-context* (if-let [context (:servlet-context request)] ;; If we're not inside a servlet environment ;; (for example when using mock requests), then ;; .getContextPath might not exist (try (.getContextPath ^ServletContext context) (catch IllegalArgumentException _ context)) ;; if the context is not specified in the request ;; we check if one has been specified in the environment ;; instead (:app-context env))] (handler request)))) (defn wrap-internal-error [handler] (fn [req] (try (handler req) (catch Throwable t (log/error t) (error-page {:status 500 :title "Something very bad has happened!" :message "We've dispatched a team of highly trained gnomes to take care of the problem."}))))) (defn wrap-csrf [handler] (wrap-anti-forgery handler {:error-response (error-page {:status 403 :title "Invalid anti-forgery token"})})) (defn wrap-i18n [handler] (tempura/wrap-ring-request handler {:tr-opts i18n/tconfig})) (def joda-time-writer (transit/write-handler (constantly "m") (fn [v] (-> ^ReadableInstant v .getMillis)) (fn [v] (-> ^ReadableInstant v .getMillis .toString)))) (def restful-format-options (update muuntaja/default-options :formats merge {"application/transit+json" {:decoder [(partial transit-format/make-transit-decoder :json)] :encoder [#(transit-format/make-transit-encoder :json (merge % {:handlers {org.joda.time.DateTime joda-time-writer}}))]}})) (defn wrap-formats [handler] (let [wrapped (-> handler wrap-params (wrap-format restful-format-options))] (fn [request] ;; disable wrap-formats for websockets ;; since they're not compatible with this middleware ((if (:websocket? request) handler wrapped) request)))) (defn on-error [request response] (error-page {:status 403 :title (str "Access to " (:uri request) " is not authorized")})) (defn wrap-restricted [handler] (restrict handler {:handler authenticated? :on-error on-error})) (defn wrap-auth [handler] (let [backend (session-backend)] (-> handler (wrap-authentication backend) (wrap-authorization backend)))) (defn wrap-base [handler] (-> ((:middleware defaults) handler) wrap-i18n wrap-auth wrap-webjars wrap-flash (wrap-session {:cookie-attrs {:http-only true}}) (wrap-defaults (-> site-defaults (assoc-in [:security :anti-forgery] false) (dissoc :session))) wrap-context wrap-internal-error)) -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.