buildReq builds http.Request for aws PreSign.
(ctx context.Context, expiry time.Duration)
| 111 | |
| 112 | // buildReq builds http.Request for aws PreSign. |
| 113 | func buildReq(ctx context.Context, expiry time.Duration) (*http.Request, error) { |
| 114 | query := url.Values{ |
| 115 | queryActionKey: {signAction}, |
| 116 | queryExpiryKey: {strconv.FormatInt(int64(expiry/time.Second), 10)}, |
| 117 | } |
| 118 | saslMeta := sasl.MetadataFromContext(ctx) |
| 119 | if saslMeta == nil { |
| 120 | return nil, errors.New("missing sasl metadata") |
| 121 | } |
| 122 | |
| 123 | signUrl := url.URL{ |
| 124 | Scheme: "kafka", |
| 125 | Host: saslMeta.Host, |
| 126 | Path: "/", |
| 127 | RawQuery: query.Encode(), |
| 128 | } |
| 129 | |
| 130 | req, err := http.NewRequest(http.MethodGet, signUrl.String(), nil) |
| 131 | if err != nil { |
| 132 | return nil, err |
| 133 | } |
| 134 | |
| 135 | return req, nil |
| 136 | } |
| 137 | |
| 138 | // buildSignedMap builds signed string map which will be used to authenticate with MSK. |
| 139 | func buildSignedMap(u *url.URL, header http.Header) map[string]string { |
no test coverage detected