Open woodlamp-tech-admin opened 5 years ago
Gah identity management on GitHub sucks. That's me above.
Hi @alyssackwan I'm noticing that the enclosing vector in the middleware map is missing. Try this:
:site-middleware (new-middleware {:middleware [site-middleware-config}})
I hope this helps.
The site-middleware-config
var is already a vector of wrap-
functions.
I decided to revert from bidi to Compojure in my usage of Chestnut and that helped. I didn't test, but it doesn't seem like the wrap-mw
calls to the outputs of bidi's make-handler
can actually compose the same way that Compojure routes and middleware compose. I'm probably wrong, but I'll point to this thread including a philosophical statement by the maintainer of bidi (https://github.com/juxt/bidi/issues/160).
Ah, I see. So it works with Compojure, but not with Bidi?
Yes. Again, I haven't tested, but I think bidi.ring/make-handler
takes a bidi struct and returns a Ring handler function, and system's handler component does a double make-handler
call - once for endpoint components with :middleware
directly attached to them, and then again to compose all the separate endpoints into the final handler. I conjecture that the outer make-handler
can't be passed a Ring handler function (from the inner make-handler
calls), only a bidi struct directly, which it gets with endpoint components without :middleware
. Not too hard to test, but I haven't had time.
I must be insane, because I see example after example online of this being done, yet it doesn't work on my system.
I have this:
The middleware isn't mounting. I can't figure out from the code how
Handler
does its magic, but example after example shows that this is how to do it.What am I doing wrong?