|
25 | 25 | (org.apache.http.nio.conn NoopIOSessionStrategy))) |
26 | 26 |
|
27 | 27 | (def ^:private insecure-context-verifier |
28 | | - { |
29 | | - :context (-> (SSLContexts/custom) |
30 | | - (.loadTrustMaterial nil (reify TrustStrategy |
31 | | - (isTrusted [_ _ _] true))) |
32 | | - (.build)) |
33 | | - :verifier NoopHostnameVerifier/INSTANCE}) |
34 | | - |
35 | | -(def ^SSLConnectionSocketFactory insecure-socket-factory |
36 | | - (let [{:keys [context verifier]} insecure-context-verifier] |
37 | | - (SSLConnectionSocketFactory. ^SSLContext context |
38 | | - ^HostnameVerifier verifier))) |
39 | | - |
40 | | -(def ^SSLIOSessionStrategy insecure-strategy |
41 | | - (let [{:keys [context verifier]} insecure-context-verifier] |
42 | | - (SSLIOSessionStrategy. ^SSLContext context ^HostnameVerifier verifier))) |
43 | | - |
44 | | -(def ^SSLConnectionSocketFactory secure-ssl-socket-factory |
| 28 | + (delay { |
| 29 | + :context (-> (SSLContexts/custom) |
| 30 | + (.loadTrustMaterial nil (reify TrustStrategy |
| 31 | + (isTrusted [_ _ _] true))) |
| 32 | + (.build)) |
| 33 | + :verifier NoopHostnameVerifier/INSTANCE})) |
| 34 | + |
| 35 | +(def ^:private insecure-socket-factory |
| 36 | + (delay |
| 37 | + (let [{:keys [context verifier]} @insecure-context-verifier] |
| 38 | + (SSLConnectionSocketFactory. ^SSLContext context |
| 39 | + ^HostnameVerifier verifier)))) |
| 40 | + |
| 41 | +(def ^:private insecure-strategy |
| 42 | + (delay |
| 43 | + (let [{:keys [context verifier]} @insecure-context-verifier] |
| 44 | + (SSLIOSessionStrategy. ^SSLContext context ^HostnameVerifier verifier)))) |
| 45 | + |
| 46 | +(def ^:private ^SSLConnectionSocketFactory secure-ssl-socket-factory |
45 | 47 | (SSLConnectionSocketFactory/getSocketFactory)) |
46 | 48 |
|
47 | | -(def ^SSLIOSessionStrategy secure-strategy |
| 49 | +(def ^:private ^SSLIOSessionStrategy secure-strategy |
48 | 50 | (SSLIOSessionStrategy/getDefaultStrategy)) |
49 | 51 |
|
50 | 52 | (defn ^SSLConnectionSocketFactory SSLGenericSocketFactory |
|
119 | 121 | (.build))] |
120 | 122 | (PoolingHttpClientConnectionManager. reg)))) |
121 | 123 |
|
122 | | -(def insecure-scheme-registry |
123 | | - (-> (RegistryBuilder/create) |
124 | | - (.register "http" PlainConnectionSocketFactory/INSTANCE) |
125 | | - (.register "https" insecure-socket-factory) |
126 | | - (.build))) |
127 | | - |
128 | | -(def insecure-strategy-registry |
129 | | - (-> (RegistryBuilder/create) |
130 | | - (.register "http" NoopIOSessionStrategy/INSTANCE) |
131 | | - (.register "https" insecure-strategy) |
132 | | - (.build))) |
133 | | - |
134 | | -(def regular-scheme-registry |
| 124 | +(def ^:private insecure-scheme-registry |
| 125 | + (delay |
| 126 | + (-> (RegistryBuilder/create) |
| 127 | + (.register "http" PlainConnectionSocketFactory/INSTANCE) |
| 128 | + (.register "https" ^SSLConnectionSocketFactory @insecure-socket-factory) |
| 129 | + (.build)))) |
| 130 | + |
| 131 | +(def ^:private insecure-strategy-registry |
| 132 | + (delay |
| 133 | + (-> (RegistryBuilder/create) |
| 134 | + (.register "http" NoopIOSessionStrategy/INSTANCE) |
| 135 | + (.register "https" ^SSLIOSessionStrategy @insecure-strategy) |
| 136 | + (.build)))) |
| 137 | + |
| 138 | +(def ^:private regular-scheme-registry |
135 | 139 | (-> (RegistryBuilder/create) |
136 | 140 | (.register "http" (PlainConnectionSocketFactory/getSocketFactory)) |
137 | 141 | (.register "https" secure-ssl-socket-factory) |
138 | 142 | (.build))) |
139 | 143 |
|
140 | | -(def regular-strategy-registry |
| 144 | +(def ^:private regular-strategy-registry |
141 | 145 | (-> (RegistryBuilder/create) |
142 | 146 | (.register "http" NoopIOSessionStrategy/INSTANCE) |
143 | 147 | (.register "https" secure-strategy) |
|
170 | 174 | (BasicHttpClientConnectionManager. (get-keystore-scheme-registry req)) |
171 | 175 |
|
172 | 176 | (opt req :insecure) (BasicHttpClientConnectionManager. |
173 | | - insecure-scheme-registry) |
| 177 | + @insecure-scheme-registry) |
174 | 178 |
|
175 | 179 | :else (BasicHttpClientConnectionManager. regular-scheme-registry))) |
176 | 180 |
|
|
200 | 204 | (get-keystore-strategy-registry req) |
201 | 205 |
|
202 | 206 | (opt req :insecure) |
203 | | - insecure-strategy-registry |
| 207 | + @insecure-strategy-registry |
204 | 208 |
|
205 | 209 | :else regular-strategy-registry) |
206 | 210 | io-reactor (make-ioreactor {:shutdown-grace-period 1})] |
|
218 | 222 | timeout value." |
219 | 223 | [{:keys [timeout keystore trust-store] :as config}] |
220 | 224 | (let [registry (cond |
221 | | - (opt config :insecure) insecure-scheme-registry |
| 225 | + (opt config :insecure) @insecure-scheme-registry |
222 | 226 |
|
223 | 227 | (or keystore trust-store) |
224 | 228 | (get-keystore-scheme-registry config) |
|
271 | 275 | (defn- ^PoolingNHttpClientConnectionManager make-reusable-async-conn-manager* |
272 | 276 | [{:keys [timeout keystore trust-store io-config] :as config}] |
273 | 277 | (let [registry (cond |
274 | | - (opt config :insecure) insecure-strategy-registry |
| 278 | + (opt config :insecure) @insecure-strategy-registry |
275 | 279 |
|
276 | 280 | (or keystore trust-store) |
277 | 281 | (get-keystore-scheme-registry config) |
|
0 commit comments