public static URI sign()

in src/main/java/com/amazonaws/kinesisvideo/utils/AwsV4Signer.java [57:84]


    public static URI sign(final URI uri, final String accessKey, final String secretKey,
                           final String sessionToken, final URI wssUri, final String region) {

        final long dateMilli = new Date().getTime();
        final String amzDate = getTimeStamp(dateMilli);
        final String datestamp = getDateStamp(dateMilli);

        final Map<String, String> queryParamsMap = buildQueryParamsMap(uri, accessKey, sessionToken, region, amzDate, datestamp);
        final String canonicalQuerystring = getCanonicalizedQueryString(queryParamsMap);
        final String canonicalRequest = getCanonicalRequest(uri, canonicalQuerystring);
        final String stringToSign = signString(amzDate, createCredentialScope(region, datestamp), canonicalRequest);
        final byte[] signatureKey = getSignatureKey(secretKey, datestamp, region, SERVICE);
        final String signature = BinaryUtils.toHex(hmacSha256(stringToSign, signatureKey));
        final String signedCanonicalQueryString = canonicalQuerystring + "&" + X_AMZ_SIGNATURE + "=" + signature;

        URI uriResult = null;
        try {
            uriResult = new URI(wssUri.getScheme(),
                    wssUri.getRawAuthority(),
                    getCanonicalUri(uri),
                    signedCanonicalQueryString,
                    null);
        } catch (URISyntaxException e) {
            logger.error(e.getMessage());
        }

        return uriResult;
    }