From 28f2baa7ddb7939cd41522dc197bfe92f9a4307e Mon Sep 17 00:00:00 2001 From: Bret McGuire Date: Tue, 23 Feb 2016 10:03:18 -0600 Subject: [PATCH 1/2] Incorporating Phil's changes to get SSL working again. This commit represents a (slightly modified) version of commits from e3adcd0ff45ed029ffd7d68a2152e587e3b46a89 at https://github.com/philip-doctor/cassaforte. The only change from those commits is that the project owner here is absurdfarce... pretty sure that's necessary to keep clojars happy. --- project.clj | 2 +- src/clojure/clojurewerkz/cassaforte/client.clj | 13 +++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/project.clj b/project.clj index 7f18784..535a1ee 100644 --- a/project.clj +++ b/project.clj @@ -1,4 +1,4 @@ -(defproject absurdfarce/cassaforte "2.0.1-30drivers-1.0.0" +(defproject absurdfarce/cassaforte "2.0.1-30drivers-1.0.2" :min-lein-version "2.5.0" :description "A Clojure client for Apache Cassandra" :url "http://clojurecassandra.info" diff --git a/src/clojure/clojurewerkz/cassaforte/client.clj b/src/clojure/clojurewerkz/cassaforte/client.clj index 4f74dff..bfd0995 100644 --- a/src/clojure/clojurewerkz/cassaforte/client.clj +++ b/src/clojure/clojurewerkz/cassaforte/client.clj @@ -26,7 +26,7 @@ [qbits.hayt.cql :as hayt]) (:import [com.datastax.driver.core Statement ResultSet ResultSetFuture Host Session Cluster Cluster$Builder SimpleStatement PreparedStatement HostDistance PoolingOptions - SSLOptions JdkSSLOptions ProtocolOptions$Compression ProtocolVersion] + SSLOptions JdkSSLOptions JdkSSLOptions$Builder ProtocolOptions$Compression ProtocolVersion] [com.datastax.driver.auth DseAuthProvider] [com.google.common.util.concurrent Futures FutureCallback] java.net.URI @@ -116,7 +116,7 @@ (.withAuthProvider builder (DseAuthProvider.))) (.build builder))) -(defn- ^SSLOptions build-ssl-options +(defn- ^JdkSSLOptions build-ssl-options [{:keys [keystore-path keystore-password cipher-suites]}] (let [keystore-stream (io/input-stream keystore-path) keystore (KeyStore/getInstance "JKS") @@ -128,14 +128,15 @@ (into-array String cipher-suites) ;; v3.0 of the drivers dropped SSLOptions.DEFAULT_SSL_CIPHER_SUITES so we'll just re-use ;; the literal here. - { "TLS_RSA_WITH_AES_128_CBC_SHA", "TLS_RSA_WITH_AES_256_CBC_SHA" })] + (into-array String ["TLS_RSA_WITH_AES_128_CBC_SHA" "TLS_RSA_WITH_AES_256_CBC_SHA"]))] (.load keystore keystore-stream password) (.init keymanager keystore password) (.init trustmanager keystore) (.init ssl-context (.getKeyManagers keymanager) (.getTrustManagers trustmanager) nil) - (-> (JdkSSLOptions/builder) - (.withSSLContext ssl-context) - (.withCipherSuites ssl-cipher-suites)))) + (.. (JdkSSLOptions$Builder.) + (withSSLContext ssl-context) + (withCipherSuites ssl-cipher-suites) + (build)))) (defn- ^ProtocolOptions$Compression select-compression [compression] From 7691a671481919abd4f624384972a0be5452640e Mon Sep 17 00:00:00 2001 From: Bret McGuire Date: Wed, 24 Feb 2016 23:19:14 -0600 Subject: [PATCH 2/2] A few small changes based on code review. --- src/clojure/clojurewerkz/cassaforte/client.clj | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/clojure/clojurewerkz/cassaforte/client.clj b/src/clojure/clojurewerkz/cassaforte/client.clj index bfd0995..3a474b4 100644 --- a/src/clojure/clojurewerkz/cassaforte/client.clj +++ b/src/clojure/clojurewerkz/cassaforte/client.clj @@ -26,7 +26,7 @@ [qbits.hayt.cql :as hayt]) (:import [com.datastax.driver.core Statement ResultSet ResultSetFuture Host Session Cluster Cluster$Builder SimpleStatement PreparedStatement HostDistance PoolingOptions - SSLOptions JdkSSLOptions JdkSSLOptions$Builder ProtocolOptions$Compression ProtocolVersion] + SSLOptions JdkSSLOptions ProtocolOptions$Compression ProtocolVersion] [com.datastax.driver.auth DseAuthProvider] [com.google.common.util.concurrent Futures FutureCallback] java.net.URI @@ -116,7 +116,7 @@ (.withAuthProvider builder (DseAuthProvider.))) (.build builder))) -(defn- ^JdkSSLOptions build-ssl-options +(defn- ^SSLOptions build-ssl-options [{:keys [keystore-path keystore-password cipher-suites]}] (let [keystore-stream (io/input-stream keystore-path) keystore (KeyStore/getInstance "JKS") @@ -133,7 +133,7 @@ (.init keymanager keystore password) (.init trustmanager keystore) (.init ssl-context (.getKeyManagers keymanager) (.getTrustManagers trustmanager) nil) - (.. (JdkSSLOptions$Builder.) + (.. (JdkSSLOptions/builder) (withSSLContext ssl-context) (withCipherSuites ssl-cipher-suites) (build))))