ol.busker.middleware

Ring middleware for common HTTP handling patterns.

wrap-reject-early-data

(wrap-reject-early-data handler)
(wrap-reject-early-data handler {:keys [methods on-reject] :or {methods (complement idempotent-methods)}})

Middleware that rejects non-idempotent requests arriving via 0-RTT.

0-RTT data can be replayed by attackers. This middleware returns HTTP 425 Too Early for POST, PUT, DELETE, PATCH requests that arrive before the TLS handshake completes.

Options: :methods - set of methods to reject (default: all except GET, HEAD, OPTIONS, TRACE) :on-reject - fn called with request when rejecting (for logging)

Example: (wrap-reject-early-data handler) (wrap-reject-early-data handler {:on-reject #(log/warn "Rejected early" %)})