Skip to content

Commit ea29cd7

Browse files
committed
Enable test exercising :insecure? again
1 parent c261602 commit ea29cd7

File tree

3 files changed

+39
-24
lines changed

3 files changed

+39
-24
lines changed

test-resources/logback.xml

+2
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,7 @@
1313
<logger name="org.eclipse.jetty.server" level="ERROR"/>
1414
<logger name="org.eclipse.jetty.util.log" level="ERROR"/>
1515
<logger name="org.eclipse.jetty.util.ssl" level="ERROR"/>
16+
<logger name="org.eclipse.jetty.util.thread" level="ERROR"/>
1617
<logger name="org.eclipse.jetty.util.component" level="ERROR"/>
18+
<logger name="org.eclipse.jetty.io.nio" level="ERROR"/>
1719
</configuration>

test/clj_http/test/core.clj

+31-19
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@
77
[ring.adapter.jetty :as ring])
88
(:import (java.io ByteArrayInputStream)
99
(org.eclipse.jetty.server Server)
10-
(org.eclipse.jetty.server.nio SelectChannelConnector)))
10+
(org.eclipse.jetty.server.nio SelectChannelConnector)
11+
(org.eclipse.jetty.server.ssl SslSelectChannelConnector)))
1112

1213
(defn handler [req]
1314
(condp = [(:request-method req) (:uri req)]
@@ -34,14 +35,30 @@
3435
{:status 200 :body (:body req)}))
3536

3637
(defn make-server ^Server []
37-
(ring/run-jetty handler {:port 0 ;; Use a free port
38-
:join? false}))
38+
(ring/run-jetty handler {:port 0 ;; Use a free port
39+
:join? false
40+
:ssl-port 0 ;; Use a free port
41+
:ssl? true
42+
:keystore "test-resources/keystore"
43+
:key-password "keykey"}))
3944

4045
(def ^:dynamic *server* nil)
4146

4247
(defn current-port []
4348
(let [^Server s *server*]
44-
(-> s .getConnectors ^SelectChannelConnector (first) .getLocalPort)))
49+
(->> s
50+
.getConnectors
51+
(filter (comp #{SelectChannelConnector} class))
52+
^SelectChannelConnector (first)
53+
.getLocalPort)))
54+
55+
(defn current-https-port []
56+
(let [^Server s *server*]
57+
(->> s
58+
.getConnectors
59+
(filter (comp #{SslSelectChannelConnector} class))
60+
^SslSelectChannelConnector (first)
61+
.getLocalPort)))
4562

4663
(defn with-server [t]
4764
(let [s (make-server)]
@@ -138,21 +155,16 @@
138155
;; (is (= 200 (:status resp)))))
139156

140157
(deftest ^{:integration true} self-signed-ssl-get
141-
(let [t (doto (Thread. #(ring/run-jetty handler
142-
{:ssl? true
143-
:keystore "test-resources/keystore"
144-
:key-password "keykey"})) .start)]
145-
(Thread/sleep 1000)
146-
(try
147-
(is (thrown? javax.net.ssl.SSLException
148-
(request {:request-method :get :uri "/get"
149-
:scheme :https})))
150-
#_(let [resp (request {:request-method :get :uri "/get" :server-port 18082
151-
:scheme :https :insecure? true})]
152-
(is (= 200 (:status resp)))
153-
(is (= "get" (slurp-body resp))))
154-
(finally
155-
(.stop t)))))
158+
(let [client-opts {:request-method :get
159+
:uri "/get"
160+
:scheme :https
161+
:server-name (str "localhost:" (current-https-port))
162+
:port (current-https-port)}]
163+
(is (thrown? javax.net.ssl.SSLException
164+
(request client-opts)))
165+
(let [resp (request (assoc client-opts :insecure? true))]
166+
(is (= 200 (:status resp)))
167+
(is (= "get" (slurp-body resp))))))
156168

157169
;; (deftest ^{:integration true} multipart-form-uploads
158170
;; (run-server)

test/setup.clj

+6-5
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,12 @@
99
(uncaughtException [_ thread e]
1010
;; Omit exceptions coming from "Address already in use" because they're meaningless
1111
;; (these happen when one picks port 0, and after one such exception a new port will be retried successfully)
12-
(let [omit? (and (instance? MultiException e)
13-
(->> ^MultiException e
14-
.getThrowables
15-
(every? (fn [^Throwable t]
16-
(-> t .getMessage (string/includes? "Address already in use"))))))]
12+
(let [omit? (or (-> ^Throwable e .getMessage #{"Address already in use"})
13+
(and (instance? MultiException e)
14+
(->> ^MultiException e
15+
.getThrowables
16+
(every? (fn [^Throwable t]
17+
(-> t .getMessage (string/includes? "Address already in use")))))))]
1718
(when-not omit?
1819
(-> ^Throwable e .printStackTrace)
1920
(when (System/getenv "CI")

0 commit comments

Comments
 (0)