String contentLength = mutableRequest.firstMatchingHeader(CONTENT_LENGTH) .orElse(null); long originalContentLength;
String contentLength = mutableRequest.firstMatchingHeader(CONTENT_LENGTH) .orElse(null); long originalContentLength;
@Override public SdkHttpFullRequest marshall(T in) { SdkHttpFullRequest.Builder marshalled = delegate.marshall(in).toBuilder(); marshalled.contentStreamProvider(requestBody.contentStreamProvider()); String contentType = marshalled.firstMatchingHeader(CONTENT_TYPE) .orElse(null); if (StringUtils.isEmpty(contentType)) { marshalled.putHeader(CONTENT_TYPE, requestBody.contentType()); } marshalled.putHeader(CONTENT_LENGTH, String.valueOf(requestBody.contentLength())); return marshalled.build(); } }
protected SdkHttpFullRequest.Builder doSign(SdkHttpFullRequest request, Aws4SignerRequestParams requestParams, T signingParams) { SdkHttpFullRequest.Builder mutableRequest = request.toBuilder(); AwsCredentials sanitizedCredentials = sanitizeCredentials(signingParams.awsCredentials()); if (sanitizedCredentials instanceof AwsSessionCredentials) { addSessionCredentials(mutableRequest, (AwsSessionCredentials) sanitizedCredentials); } addHostHeader(mutableRequest); addDateHeader(mutableRequest, requestParams.getFormattedSigningDateTime()); String contentSha256 = calculateContentHash(mutableRequest, signingParams); mutableRequest.firstMatchingHeader(SignerConstant.X_AMZ_CONTENT_SHA256) .filter(h -> h.equals("required")) .ifPresent(h -> mutableRequest.putHeader(SignerConstant.X_AMZ_CONTENT_SHA256, contentSha256)); String canonicalRequest = createCanonicalRequest(mutableRequest, contentSha256, signingParams.doubleUrlEncode()); String stringToSign = createStringToSign(canonicalRequest, requestParams); byte[] signingKey = deriveSigningKey(sanitizedCredentials, requestParams); byte[] signature = computeSignature(stringToSign, signingKey); mutableRequest.putHeader(SignerConstant.AUTHORIZATION, buildAuthorizationHeader(signature, sanitizedCredentials, requestParams, mutableRequest)); processRequestPayload(mutableRequest, signature, signingKey, requestParams, signingParams); return mutableRequest; }
protected SdkHttpFullRequest.Builder doSign(SdkHttpFullRequest request, Aws4SignerRequestParams requestParams, T signingParams) { SdkHttpFullRequest.Builder mutableRequest = request.toBuilder(); AwsCredentials sanitizedCredentials = sanitizeCredentials(signingParams.awsCredentials()); if (sanitizedCredentials instanceof AwsSessionCredentials) { addSessionCredentials(mutableRequest, (AwsSessionCredentials) sanitizedCredentials); } addHostHeader(mutableRequest); addDateHeader(mutableRequest, requestParams.getFormattedSigningDateTime()); String contentSha256 = calculateContentHash(mutableRequest, signingParams); mutableRequest.firstMatchingHeader(SignerConstant.X_AMZ_CONTENT_SHA256) .filter(h -> h.equals("required")) .ifPresent(h -> mutableRequest.putHeader(SignerConstant.X_AMZ_CONTENT_SHA256, contentSha256)); String canonicalRequest = createCanonicalRequest(mutableRequest, contentSha256, signingParams.doubleUrlEncode()); String stringToSign = createStringToSign(canonicalRequest, requestParams); byte[] signingKey = deriveSigningKey(sanitizedCredentials, requestParams); byte[] signature = computeSignature(stringToSign, signingKey); mutableRequest.putHeader(SignerConstant.AUTHORIZATION, buildAuthorizationHeader(signature, sanitizedCredentials, requestParams, mutableRequest)); processRequestPayload(mutableRequest, signature, signingKey, requestParams, signingParams); return mutableRequest; }