From 8490be09be72595650f3a093fb5de49d56555b5a Mon Sep 17 00:00:00 2001 From: Molly Waggett Date: Tue, 2 Aug 2022 11:34:48 -0700 Subject: [PATCH 1/2] (PE-33645) Pin apacheds-core-avl for Java 11 When running tests on Java 11, we were getting the following error: ``` Uncaught exception in test fixture expected: nil actual: java.lang.NoClassDefFoundError: sun/reflect/Reflection at org.apache.directory.server.core.avltree.ArrayMarshaller.deserialize (ArrayMarshaller.java:153) [...] ``` This commit adds an explicit dependency on apacheds-core-avl 1.5.6, as suggested by https://github.com/spring-projects/spring-security/issues/6804 (version 1.5.7 caused some compilation errors), in order to support Java 11. --- project.clj | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/project.clj b/project.clj index e5a62a6..3933faa 100644 --- a/project.clj +++ b/project.clj @@ -6,7 +6,9 @@ :source-paths ["src/clojure"] :java-source-paths ["src/java"] :profiles {:dev {:dependencies [[jline "0.9.94"] - [org.apache.directory.server/apacheds-all "1.5.5"] + [org.apache.directory.server/apacheds-core-avl "1.5.6"] + [org.apache.directory.server/apacheds-all "1.5.5" + :exclusions [org.apache.directory.server/apacheds-core-avl]] [fs "1.1.2"] [org.slf4j/slf4j-simple "1.5.6"]] :jvm-opts ["-Djava.security.properties=./dev-resources/java.security"]}} From 4ae9c0e69f4f7491159b3cd10417092a7eb2f893 Mon Sep 17 00:00:00 2001 From: Molly Waggett Date: Tue, 2 Aug 2022 11:40:02 -0700 Subject: [PATCH 2/2] (wip) attempt to resolve ssl test errors --- dev-resources/keystore-local-new.jks | Bin 0 -> 2737 bytes project.clj | 2 +- src/clojure/clj_ldap/client.clj | 4 +++- test/clj_ldap/test/client.clj | 2 +- test/clj_ldap/test/ssl_server.clj | 2 +- 5 files changed, 6 insertions(+), 4 deletions(-) create mode 100644 dev-resources/keystore-local-new.jks diff --git a/dev-resources/keystore-local-new.jks b/dev-resources/keystore-local-new.jks new file mode 100644 index 0000000000000000000000000000000000000000..77a9ec260c163d7efcb3358e5177b7691fab285d GIT binary patch literal 2737 zcma)+c{CJ^8pdZc%#3}_76ygLD3ci~OZLewTV;(QTh_71*nP5=l5H4~eHY47$XaBl zlr8#(F{Eb&bc7 zFtp+W*#gFD2Pc*J9DUIaJ-P4Toj5zCIfdvUL+KrQdXC1(c(fC?<6sBx`@1rDM6x3A z#*_KYxRI()d_58)GDsR{;B(U|wfi3h1P4mcmnMbvDv~a=4W;($dmrlZUk<5>Bgew` zzq!h5?E^c7p8q=AVtuqTVPt?cQ zWR}2&=IBujW->BDo_u4Ssqgxf78V?wXcJC?-5`}9nkg4y_`QBnyFVb~TJuM8TQS)2 z%vM2(@`T&jAfx0fUk(bB7B3kcB;w2@I`a#fzC_7?^p3<9Z&e%ggwR+3yZFG9x~%pP zE71=*IZg3xUS*kI-n+;Ah*^8JrnS0$9y3)+tIgbT^?jKzYfAXmVb>bv zy?tp*of3}kJ&xA(dS{Ya+{ftYuC(;QG!xE0p-B$CS6GS_ow#-7QA25i2?v>n-Jdi6 zA@z#E{RcS}bFl9Z*g~;j@Mo9HQ&AU|Lv0{U9Y@KfhI2-=&YI}Sdgi+F-+J(hBE^;k8)`nhIF208 zbz#47#5Jh?T!u(zz1*d_edb9S>pPNZzi`=zfAFWrt7Jf(TOYlb7L#1A@@OI2K5)@T z@Y~%L4UiIPA(M}1o!`%gmwW}Gp`B7HjUci6Hd(!wwAL&M=6dWk$S}d5Pwqi6&X@rY~SQQqV#CVakeyk0aODE_y~ zj|a*wwPXIGa?-iqO@7UdjOr(o9ob4h)1o^3S<|0({cy6l^NShdo_mY=m}N)VK93O` zZ(usr?7=-#D`a7y@o7}tA)ndBWQolm=iKQvDDY}8-L}Nt9*V5rOh;5!I1vKC$}cm;*jB=nlIp$Gs8vAtGnO3=wl3dY{IxN3}ZroUN<9D_Xy9U0I&3)9`bpYl2<(k zg>O^I`-O8qldMj@UM;sUt^~Jn)O=b_0_BH{4A~Kw1?oPno`?}RrZol+fOV!OKwU~V zW<5i;-?b+$BdL73D@!-pl2@rY5l1526qAwo`F8rN!vOi~=jy=}oN{68O7eIL{l4q@ zCFORhzBa!G2=XQ|h=ye~jt zp?O+yQrElIrj}-FeL$C}aHLaBXw@wHa^g&vXm)KgVKMvgP0|#2{D;_W`(tfW?Etyp z^@9BFH94u7a3knNh=BPUB{3_sp+x1=Ze5mDIL%%0W1vNN?90u+8cuGiy0H8xC$atR z&1$YgaHy1N1+|uJcIA3IsI$MI9PnO(TXUO)cQ!YP%FT^!Y===StEK|_%QA|<@tOVg zi>{9hJ0F_$7B)@QE){QXlWE?50V@T1t?Tj8eI0X(R6N>_oeP~iOH2Ej^QKTQqtxpr z+OL1CL&iqkgYviOgXG z!@F@eMnmU2cu(o2O-WQSl|NZOmD7%vD|#^})!GAMpsr+j@7%uVa8?ye+d|Qy#3-m9 zS-x-k9`6$NzP$;5`Z=|SblTof;XaJDbY>Zd)F Xn@@U@w(MWG(Zo?y6b%9cV@Ur3IJoz4 literal 0 HcmV?d00001 diff --git a/project.clj b/project.clj index 3933faa..2418c59 100644 --- a/project.clj +++ b/project.clj @@ -2,7 +2,7 @@ :description "Clojure ldap client (Puppet Labs's fork)." :url "https://github.com/puppetlabs/clj-ldap" :dependencies [[org.clojure/clojure "1.10.1"] - [com.unboundid/unboundid-ldapsdk "5.0.1"]] + [com.unboundid/unboundid-ldapsdk "6.0.5"]] :source-paths ["src/clojure"] :java-source-paths ["src/java"] :profiles {:dev {:dependencies [[jline "0.9.94"] diff --git a/src/clojure/clj_ldap/client.clj b/src/clojure/clj_ldap/client.clj index 227e22e..c3084b2 100644 --- a/src/clojure/clj_ldap/client.clj +++ b/src/clojure/clj_ldap/client.clj @@ -113,7 +113,8 @@ (defn- create-ssl-factory "Returns a SSLSocketFactory object" - [{:keys [trust-managers trust-store]}] + [{:keys [trust-managers trust-store] :as options}] + (println "!!! CREATE SSL FACTORY: " options) (let [ssl-util (create-ssl-util trust-managers trust-store)] (.createSSLSocketFactory ssl-util))) @@ -150,6 +151,7 @@ start-tls? (let [start-tls-req (StartTLSExtendedRequest. (create-ssl-factory options))] + (println "START TLS REQ") (doto (LDAPConnection. opt (:address h) (or (:port h) default-port)) (.processExtendedOperation start-tls-req))) diff --git a/test/clj_ldap/test/client.clj b/test/clj_ldap/test/client.clj index 34cfd62..9da75c7 100644 --- a/test/clj_ldap/test/client.clj +++ b/test/clj_ldap/test/client.clj @@ -1,7 +1,7 @@ (ns clj-ldap.test.client "Automated tests for clj-ldap" (:require [clj-ldap.client :as ldap]) - (:require [clj-ldap.test.server :as server]) + (:require [clj-ldap.test.ssl-server :as server]) (:use clojure.test) (:import [com.unboundid.ldap.sdk LDAPException])) diff --git a/test/clj_ldap/test/ssl_server.clj b/test/clj_ldap/test/ssl_server.clj index ea9b7c8..8c79a41 100644 --- a/test/clj_ldap/test/ssl_server.clj +++ b/test/clj_ldap/test/ssl_server.clj @@ -30,7 +30,7 @@ ldap-server (doto (LdapServer.) (.setDirectoryService directory-service) (.addExtendedOperationHandler (StartTlsHandler.)) - (.setKeystoreFile "./dev-resources/keystore-local.jks") + (.setKeystoreFile "./dev-resources/keystore-local-new.jks") (.setCertificatePassword "secret") (.setTransports (into-array [ldap-transport ssl-transport])))]