if (credentials == null || credentials.getAWSSecretKey() == null) {
log.debug("Canonical string will not be signed, as no AWS Secret Key was provided");
return;
}
AWSCredentials sanitizedCredentials = sanitizeCredentials(credentials);
if ( sanitizedCredentials instanceof AWSSessionCredentials ) {
addSessionCredentials(request, (AWSSessionCredentials) sanitizedCredentials);
}
String encodedResourcePath = HttpUtils.urlEncode(resourcePath, true);
int timeOffset = getTimeOffset(request);
Date date = getSignatureDate(timeOffset);
request.addHeader(Headers.DATE, ServiceUtils.formatRfc822Date(date));
String canonicalString = RestUtils.makeS3CanonicalString(
httpVerb, encodedResourcePath, request, null);
log.debug("Calculated string to sign:\n\"" + canonicalString + "\"");
String signature = super.signAndBase64Encode(canonicalString, sanitizedCredentials.getAWSSecretKey(), SigningAlgorithm.HmacSHA1);
request.addHeader("Authorization", "AWS " + sanitizedCredentials.getAWSAccessKeyId() + ":" + signature);
}