这个问题的Java版本答案 - 如何在Jetty中禁用SSLv3协议以防止贵宾犬攻击 - 涵盖了如何做到这一点,但是对于使用Ring的Clojure Web应用程序和使用嵌入式Jetty版本7的Ring Jetty适配器,执行相同操作的等效最小代码是什么?
以下是我添加到包含项目-main
函数的命名空间文件中的内容:
(defn is-jetty-ssl-connector?
[^org.eclipse.jetty.server.Connector c]
(= (.getName (type c)) "org.eclipse.jetty.server.ssl.SslSelectChannelConnector"))
(defn jetty-configurator
[jetty-server]
(doseq [c (filter is-jetty-ssl-connector? (.getConnectors jetty-server))]
(.addExcludeProtocols (.getSslContextFactory c) (into-array String ["SSLv3"]))))
添加到我的-main
函数中jetty/run-jetty
函数调用的选项图中:
:configurator jetty-configurator
我确认这似乎可以使用如下所示的 cURL 命令工作:
curl -v3 -X HEAD https://localhost:443