adds SSL handling

This commit is contained in:
Dave Della Costa 2013-09-05 14:10:59 +09:00
parent 4e03d0d8cb
commit 6c8f9e49d2

View file

@ -3,6 +3,7 @@
(:import (org.eclipse.jetty.server.handler AbstractHandler)
(org.eclipse.jetty.server Server Request Response)
(org.eclipse.jetty.server.nio SelectChannelConnector)
(org.eclipse.jetty.server.ssl SslSocketConnector)
(org.eclipse.jetty.continuation Continuation ContinuationSupport ContinuationListener)
(org.eclipse.jetty.io EofException)
(javax.servlet.http HttpServletRequest))
@ -30,8 +31,19 @@
(close [this]
(.complete continuation)))
(defn- add-ssl-connector!
"Add an SslSocketConnector to a Jetty Server instance."
[^Server server options]
(let [ssl-connector (SslSocketConnector.)]
(doto ssl-connector
(.setPort (options :ssl-port 443))
(.setKeystore (options :keystore))
(.setKeyPassword (options :key-password)))
(when (options :truststore)
(.setTruststore ssl-connector (options :truststore)))
(when (options :trust-password)
(.setTrustPassword ssl-connector (options :trust-password)))
(.addConnector server ssl-connector)))
(defn- proxy-handler
"Returns an Jetty Handler implementation for the given Ring handler."
@ -70,6 +82,8 @@
server (doto (Server.)
(.addConnector connector)
(.setSendDateHeader true))]
(when (or (options :ssl?) (options :ssl-port))
(add-ssl-connector! server options))
server))
(defn ^Server run-jetty-async