Search code examples
clojurejettylimitring

Clojure/Ring: Using the ring jetty adapter, large requests give me a 413: FULL HEAD error.


Using Ring's Jetty adapter, if my request is too large I get a 413: FULL HEAD error. I tracked it down to a property called headerbuffersize, but when I try to set it in the run-jetty call, I still get the 413's. Is there a better way to control jetty config from Ring?

(ring/run-jetty
 (var app)
 {:port port :join? false
  :headerbuffersize 1048576})

What is the right way to do this?

Thanks!


Solution

  • I think this should work:

    (def header-buffer-size 1048576)
    
    (def config
      {:host  "example.com"
       :port  8080
       ; join? false ; and any other options...
       :configurator (fn [jetty]
                       (doseq [connector (.getConnectors jetty)]
                         (.setHeaderBufferSize connector
                                               header-buffer-size)))
       })