Clojure / Noir: принудительно использовать HTTPS, перенаправлять, если запрос был http: // на https: //

Я пытаюсь принудительно установить SSL на моем сайте. Я хочу иметь промежуточное ПО в кольцевом стиле для перенаправления сайта на тот же URL-адрес с https, если это только 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)

Как мне реализовать это в реальном приложении?

Я использую clojure 1.2 с Noir.

Боковое примечание: как объединить несколько строк в одну без использования нескольких вложенных строк?

8
задан animuson 26 June 2012 в 02:19
поделиться