|
37 | 37 | "Given a function that returns a new socket, create an
|
38 | 38 | SSLConnectionSocketFactory that will use that socket."
|
39 | 39 | ([socket-factory]
|
40 |
| - (SSLGenericSocketFactory socket-factory nil)) |
41 |
| - ([socket-factory ^SSLContext ssl-context] |
42 |
| - (let [^SSLContext ssl-context' (or ssl-context (SSLContexts/createDefault))] |
43 |
| - (proxy [SSLConnectionSocketFactory] [ssl-context'] |
| 40 | + (SSLGenericSocketFactory socket-factory nil nil)) |
| 41 | + ([socket-factory ^SSLContext ssl-context ^HostnameVerifier hostname-verifier] |
| 42 | + (let [^SSLContext ssl-context' (or ssl-context (SSLContexts/createDefault)) |
| 43 | + ^HostnameVerifier hostname-verifier' (or hostname-verifier (DefaultHostnameVerifier.))] |
| 44 | + (proxy [SSLConnectionSocketFactory] [ssl-context' hostname-verifier'] |
44 | 45 | (connectSocket [timeout socket host remoteAddress localAddress context]
|
45 | 46 | (let [^SSLConnectionSocketFactory this this] ;; avoid reflection
|
46 | 47 | (proxy-super connectSocket timeout (socket-factory) host remoteAddress
|
|
114 | 115 | []
|
115 | 116 | (-> (SSLContexts/custom)
|
116 | 117 | (.loadTrustMaterial nil (reify TrustStrategy
|
117 |
| - (isTrusted [_ chain auth-type] true))) |
| 118 | + (isTrusted [_ chain auth-type] true))) |
118 | 119 | (.build)))
|
119 | 120 |
|
120 | 121 | (defn ^SSLContext get-ssl-context
|
|
150 | 151 | (let [socket-factory #(socks-proxied-socket hostname port)
|
151 | 152 | registry (into-registry
|
152 | 153 | {"http" (PlainGenericSocketFactory socket-factory)
|
153 |
| - "https" (SSLGenericSocketFactory socket-factory (get-ssl-context config))})] |
| 154 | + "https" (SSLGenericSocketFactory socket-factory (get-ssl-context config) (get-hostname-verifier config))})] |
154 | 155 | (PoolingHttpClientConnectionManager. registry))))
|
155 | 156 |
|
156 | 157 | (defn ^BasicHttpClientConnectionManager make-regular-conn-manager
|
|
0 commit comments