2
私は、要求されたユーザキーの存在を確認して、ユーザが認証されているかどうかをチェックするカスタムミドルウェアを作成しようとしています。Compojureでチェーンをバイパスしているカスタムミドルウェア
(defn wrap-authenticated [handler]
(fn [{user :user :as req}]
(if (nil? user)
(do
(println "unauthorized")
{:status 401 :body "Unauthorized." :headers {:content-type "text/text"}})
(handler req))))
(def app
(wrap-authenticated (wrap-defaults app-routes (assoc site-defaults :security false))))
しかし、私は401のステータスで応答HashMapを返すようにしようとすると、私は次の例外を取得: はWARN:oejs.AbstractHttpConnectionを:/メイン とjava.lang.ClassCastException:clojure.lang.Keywordをキャストすることはできませんがto java.lang.String
おそらく、Compojureミドルウェア内で実装する必要があるロジックを理解できません。 ミドルウェアを作成してミドルウェアチェーンを壊し、カスタムレスポンスを返すか、ハンドラにリダイレクトする方法を教えてください。
私はこのような間違いを犯したと信じられません:\ありがとうございます –