|
3 | 3 | [clojure.core.async :as async]
|
4 | 4 | [clojure.string :as string])
|
5 | 5 | (:import [java.io IOException]
|
6 |
| - [java.lang.invoke MethodHandle MethodHandles MethodType] |
7 | 6 | [java.net URI]
|
8 | 7 | [java.net.http
|
9 |
| - HttpClient HttpClient$Builder HttpClient$Redirect HttpRequest HttpRequest$Builder |
| 8 | + HttpClient HttpClient$Redirect HttpRequest HttpRequest$Builder |
10 | 9 | HttpRequest$BodyPublishers HttpResponse HttpResponse$BodyHandlers]
|
11 | 10 | [java.nio ByteBuffer]
|
12 | 11 | [java.time Duration]
|
13 |
| - [java.util.concurrent ExecutorService Executors] |
14 | 12 | [java.util.function Function]))
|
15 | 13 |
|
16 | 14 | (set! *warn-on-reflection* true)
|
|
53 | 51 | "Builds and returns a java.net.URI from the request map."
|
54 | 52 | [{:keys [scheme server-name server-port uri query-string]
|
55 | 53 | :or {scheme "https"}}]
|
56 |
| - (let [;; NOTE: we should only include the port if it was explicitly specified to a |
57 |
| - ;; non-default value. This check is needed to ensure the HttpClient instance |
58 |
| - ;; generate consistent headers with the `host` header used when signing |
59 |
| - ;; the request. |
60 |
| - ;; The relevant restricted headers managed by HttpClient here are the `Host` |
61 |
| - ;; header for HTTP/1.1, and the `:authority` pseudo-header for HTTP/2. |
62 |
| - is-default-port (if (= (name scheme) "http") |
63 |
| - (= server-port 80) |
64 |
| - (= server-port 443)) |
65 |
| - should-include-port (and (some? server-port) |
66 |
| - (not is-default-port)) |
67 |
| - ;; NOTE: we can't use URI's constructor passing individual components, because sometimes |
| 54 | + (let [;; NOTE: we can't use URI's constructor passing individual components, because sometimes |
68 | 55 | ;; the `:uri` part includes query params
|
69 | 56 | ;; (e.g. on DeleteObjects op, :uri is `/bucket-name?delete`)
|
70 |
| - full-uri (str (name scheme) "://" server-name |
71 |
| - (when should-include-port (str ":" server-port)) |
| 57 | + full-uri (str (name scheme) "://" |
| 58 | + (aws-http/uri-authority scheme server-name server-port) |
72 | 59 | uri
|
73 | 60 | (when query-string (str "?" query-string)))]
|
74 | 61 | (URI/create full-uri)))
|
|
0 commit comments