in signer/msk_auth_token_provider.go [291:315]
func getExpirationTimeMs(signedURL string) (int64, error) {
parsedURL, err := url.Parse(signedURL)
if err != nil {
return 0, fmt.Errorf("failed to parse the signed url: %w", err)
}
params := parsedURL.Query()
date, err := time.Parse("20060102T150405Z", params.Get(DateQueryKey))
if err != nil {
return 0, fmt.Errorf("failed to parse the 'X-Amz-Date' param from signed url: %w", err)
}
signingTimeMs := date.UnixNano() / int64(time.Millisecond)
expiryDurationSeconds, err := strconv.ParseInt(params.Get(ExpiresQueryKey), 10, 64)
if err != nil {
return 0, fmt.Errorf("failed to parse the 'X-Amz-Expires' param from signed url: %w", err)
}
expiryDurationMs := expiryDurationSeconds * 1000
expiryMs := signingTimeMs + expiryDurationMs
return expiryMs, nil
}