private AWSS3V4Signer buildSigV4Signer(final String region) { AWSS3V4Signer v4Signer = new AWSS3V4Signer(); v4Signer.setRegionName(region); v4Signer.setServiceName(AmazonS3Client.S3_SERVICE_NAME); return v4Signer; }
if (isPayloadSigningEnabled(request)) { if (useChunkEncoding(request)) { final String contentLength = request.getHeaders().get(Headers.CONTENT_LENGTH); final long originalContentLength; originalContentLength = getContentLength(request); } catch (IOException e) { throw new SdkClientException(
/** * Determine whether to use aws-chunked for signing */ private boolean useChunkEncoding(SignableRequest<?> request) { // If chunked encoding is explicitly disabled through client options return right here. // Chunked encoding only makes sense to do when the payload is signed if (!isPayloadSigningEnabled(request) || isChunkedEncodingDisabled(request)) { return false; } if (request.getOriginalRequestObject() instanceof PutObjectRequest || request.getOriginalRequestObject() instanceof UploadPartRequest) { return true; } return false; }
private AWSS3V4Signer updateSigV4SignerWithRegion(final AWSS3V4Signer v4Signer, String region) { v4Signer.setServiceName(getServiceNameIntern()); v4Signer.setRegionName(region); return v4Signer; }
if (useChunkEncoding(request)) { final String contentLength = request.getHeaders().get(Headers.CONTENT_LENGTH); originalContentLength = getContentLength(request); } catch (IOException e) { throw new AmazonClientException(
return updateSigV4SignerWithRegion(new AWSS3V4Signer(), regionOverride);
/** * If necessary, creates a chunk-encoding wrapper on the request payload. */ @Override protected void processRequestPayload(SignableRequest<?> request, byte[] signature, byte[] signingKey, AWS4SignerRequestParams signerRequestParams) { if (useChunkEncoding(request)) { AwsChunkedEncodingInputStream chunkEncodededStream = new AwsChunkedEncodingInputStream( request.getContent(), signingKey, signerRequestParams.getFormattedSigningDateTime(), signerRequestParams.getScope(), BinaryUtils.toHex(signature), this); request.setContent(chunkEncodededStream); } }
@Test public void testGetContentLength() throws IOException { final long len = 5 * Constants.MB; final Request<?> request = new DefaultRequest<Void>("service"); final InputStream is = new MockInputStream(len, true); request.setContent(is); assertTrue("same length", len == AWSS3V4Signer.getContentLength(request)); assertTrue("works fine after reset", len == AWSS3V4Signer.getContentLength(request)); is.close(); }
if (useChunkEncoding(request)) { final String contentLength = request.getHeaders().get(Headers.CONTENT_LENGTH); originalContentLength = getContentLength(request); } catch (IOException e) { throw new AmazonClientException(
private AWSS3V4Signer updateSigV4SignerWithRegion(final AWSS3V4Signer v4Signer, String region) { v4Signer.setServiceName(getServiceNameIntern()); v4Signer.setRegionName(region); return v4Signer; }
@Before public void setup() throws FileNotFoundException { File data = new File(getClass().getResource("/com/amazonaws/auth/RandomTestData.txt") .getPath()); FileInputStream fis = new FileInputStream(data); byte[] key = BinaryUtils.fromBase64("3CzwdoZjnC/7siQkeHrlEmv0PE12RkMFZVG5qKt096s="); String keyPath = "20150513/us-west-2/s3/aws4_request"; String headerSignature = "c61bd05d152a8ca5ca2a024ec45d0670c0f4aa2aa67ee26be9de8657f6cfea37"; String dateTime = "20150513T222354Z"; aceis = new AwsChunkedEncodingInputStream(fis, 262144, key, dateTime, keyPath, headerSignature, new AWSS3V4Signer()); }
/** * If necessary, creates a chunk-encoding wrapper on the request payload. */ @Override protected void processRequestPayload(Request<?> request, HeaderSigningResult headerSigningResult) { if (useChunkEncoding(request)) { InputStream payloadStream = request.getContent(); String dateTime = headerSigningResult.getDateTime(); String keyPath = headerSigningResult.getScope(); byte[] kSigning = headerSigningResult.getKSigning(); String signature = BinaryUtils.toHex(headerSigningResult .getSignature()); AwsChunkedEncodingInputStream chunkEncodededStream = new AwsChunkedEncodingInputStream( payloadStream, kSigning, dateTime, keyPath, signature, this); request.setContent(chunkEncodededStream); } }
public void testGetContentLengthMarkNotSupported() throws IOException { final Request<?> request = new DefaultRequest<Void>("service"); // Content doesn't support mark request.setContent(new MockInputStream(16, false)); // Should throw exception as mark not supported AWSS3V4Signer.getContentLength(request); }
v4Signer.setServiceName(getServiceNameIntern()); v4Signer.setRegionName(region); return v4Signer; } else if (request.getOriginalRequest() instanceof GeneratePresignedUrlRequest) { : getSignerRegionOverride(); if (regionOverride != null) { final AWSS3V4Signer v4Signer = new AWSS3V4Signer(); v4Signer.setServiceName(getServiceNameIntern()); v4Signer.setRegionName(regionOverride); return v4Signer;
if (isPayloadSigningEnabled(request)) { if (useChunkEncoding(request)) { final String contentLength = request.getHeaders().get(Headers.CONTENT_LENGTH); final long originalContentLength; originalContentLength = getContentLength(request); } catch (IOException e) { throw new SdkClientException(
return updateSigV4SignerWithRegion(new AWSS3V4Signer(), regionOverride);
/** * If necessary, creates a chunk-encoding wrapper on the request payload. */ @Override protected void processRequestPayload(SignableRequest<?> request, byte[] signature, byte[] signingKey, AWS4SignerRequestParams signerRequestParams) { if (useChunkEncoding(request)) { AwsChunkedEncodingInputStream chunkEncodededStream = new AwsChunkedEncodingInputStream( request.getContent(), signingKey, signerRequestParams.getFormattedSigningDateTime(), signerRequestParams.getScope(), BinaryUtils.toHex(signature), this); request.setContent(chunkEncodededStream); } }
/** * Determine whether to use aws-chunked for signing */ private boolean useChunkEncoding(SignableRequest<?> request) { // If chunked encoding is explicitly disabled through client options return right here. // Chunked encoding only makes sense to do when the payload is signed if (!isPayloadSigningEnabled(request) || isChunkedEncodingDisabled(request)) { return false; } if (request.getOriginalRequestObject() instanceof PutObjectRequest || request.getOriginalRequestObject() instanceof UploadPartRequest) { return true; } return false; }
private AWSS3V4Signer buildSigV4Signer(final String region) { AWSS3V4Signer v4Signer = new AWSS3V4Signer(); v4Signer.setRegionName(region); v4Signer.setServiceName(AmazonS3Client.S3_SERVICE_NAME); return v4Signer; }
/** * If necessary, creates a chunk-encoding wrapper on the request payload. */ @Override protected void processRequestPayload(Request<?> request, HeaderSigningResult headerSigningResult) { if (useChunkEncoding(request)) { InputStream payloadStream = request.getContent(); String dateTime = headerSigningResult.getDateTime(); String keyPath = headerSigningResult.getScope(); byte[] kSigning = headerSigningResult.getKSigning(); String signature = BinaryUtils.toHex(headerSigningResult .getSignature()); AwsChunkedEncodingInputStream chunkEncodededStream = new AwsChunkedEncodingInputStream( payloadStream, kSigning, dateTime, keyPath, signature, this); request.setContent(chunkEncodededStream); } }