I have the following setting up an app where some pages will be protected by Friend.
(defroutes app-routes (GET "/" request (index request)) (GET "/search-results" request (search-results request)) (GET "/account" request (friend/authorize #{::user} (account request))) (GET "/admin" request (friend/authorize #{::admin} (admin request))) (friend/logout (ANY "/logout" request (ring.util.response/redirect "/"))) (GET "/login" request (login request)) (route/not-found "Page not found")) (def app (-> app-routes (friend/authenticate {:credential-fn (partial creds/bcrypt- credential-fn (:users @interactions)) :workflows [(workflows/interactive- form)]}) (wrap-resource "public") (wrap-session {:cookie-name "discovery-session" :cookie-attrs {:max-age 10000 }}) (wrap-cookies) (wrap-params))) (defn -main [& args] (let [port (Integer/parseInt (first args))] (try (run-jetty #'app {:port (or port 8080) :join? false}) (catch Exception e (debug/print-error-info e))))) If I try to go to /admin without being logged in, I should get redirected to /login, but instead I get: java.lang.ClassCastException: java.lang.String cannot be cast to clojure.lang.Associative at clojure.lang.RT.assoc(RT.java:691) at clojure.core$assoc.invoke(core.clj:187) at clojure.core$assoc_in.invoke(core.clj:5459) at clojure.core$assoc_in.invoke(core.clj:5458) at cemerick.friend $default_unauthenticated_handler.invoke(friend.clj:164) at clojure.lang.Var.invoke(Var.java:415) at cemerick.friend$authenticate_STAR_.invoke(friend.clj:202) at cemerick.friend$authenticate$fn__1341.invoke(friend.clj: 207) at ring.middleware.resource$wrap_resource $fn__2730.invoke(resource.clj:17) at ring.middleware.session$wrap_session $fn__2651.invoke(session.clj:43) at ring.middleware.cookies$wrap_cookies $fn__2588.invoke(cookies.clj:160) at ring.middleware.cookies$wrap_cookies $fn__2588.invoke(cookies.clj:160) at ring.middleware.params$wrap_params $fn__2400.invoke(params.clj:55) at clojure.lang.Var.invoke(Var.java:415) at ring.adapter.jetty$proxy_handler$fn__2809.invoke(jetty.clj: 18) at ring.adapter.jetty.proxy $org.eclipse.jetty.server.handler.AbstractHandler$0.handle(Unknown Source) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java: 111) at org.eclipse.jetty.server.Server.handle(Server.java:349) at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java: 452) at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java: 884) at org.eclipse.jetty.server.AbstractHttpConnection $RequestHandler.headerComplete(AbstractHttpConnection.java:938) at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java: 634) at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:230) at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java: 76) at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java: 609) at org.eclipse.jetty.io.nio.SelectChannelEndPoint $1.run(SelectChannelEndPoint.java:45) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java: 599) at org.eclipse.jetty.util.thread.QueuedThreadPool $3.run(QueuedThreadPool.java:534) at java.lang.Thread.run(Thread.java:722) Has anyone seen this error before? -- 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