(ns clj-rheo.middleware.servlet-context
(:use [clj-rheo.util.core :only [get-context-path]]))
(defn wrap-context
"Removes the deployed servlet context from a URI when running as a
deployed web application"
[handler]
(fn [request]
(if-let [servlet-req (:servlet-request request)]
(let [context (get-context-path servlet-req)
uri (:uri request)]
(if (.startsWith uri context)
(handler (assoc request :uri
(.substring uri (.length context))))
(handler request)))
(handler request))))
- James