我正在尝试在我的网站上强制使用 SSL。我想要一个环形中间件来将站点重定向到与 https 相同的 URL,如果它只是 http
我编写了以下代码,但除了检查请求方案并打印它应该重定向到的 URL 之外,它实际上并没有做任何事情。
(defn https-url [request-url]
(str (str (str (str "https://" (:server-name request-url) ":") (:server-port request-url))) (:uri request-url)))
(defn require-https
[handler]
(fn [request]
(let [page-request (handler request)]
(if (= (:scheme page-request) :http)
(println (https-url page-request))))))
(server/add-middleware require-https)
我将如何将其实现到真正的应用程序中?
我正在使用带有 Noir 的 clojure 1.2。
旁注:如何在不使用多个嵌套 str 的情况下将多个字符串组合成一个字符串?