2015-01-27 1 views
0

This answer к Java-версии этого вопроса - How to disable the SSLv3 protocol in Jetty to prevent Poodle Attack - охватывает, как это сделать, но что эквивалентно минимальному коду, чтобы сделать то же самое для веб-приложения Clojure с помощью Ring и адаптера Ring Jetty, который использует встроенную Jetty версии 7?Как отключить SSLv3 для встроенного сервера Jetty для приложения Ring?

ответ

2

Вот что я добавил в файл имен, содержащий -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"])))) 

добавлены к вариантам карты вызова в jetty/run-jetty функции в моей -main функции:

:configurator jetty-configurator 

Я подтвердил, что это, похоже, работает с использованием команды cURL, например:

curl -v3 -X HEAD https://localhost:443 
+1

Или просто запустите Jetty 9.2.7 и получите это исключение в качестве поведения/конфигурации по умолчанию. –

+0

@JoakimErdfelt [Я не думаю, что адаптер Ring Jetty будет использовать Jetty 9 некоторое время] (https://github.com/ring-clojure/ring/issues/177). –

+2

Jetty 7 и Jetty 8 были EOL (End of Life) еще в 2014 году. - подала ошибку с кольцом об этом - https://github.com/ring-clojure/ring/issues/183 –