.removeHeader(AUTHORIZATION) // .replaceHeader("X-Amz-Date", timestamp);
.removeHeader(AUTHORIZATION) // .replaceHeader("X-Amz-Date", timestamp);
.removeHeader(AUTHORIZATION) // .replaceHeader("X-Amz-Date", timestamp);
.removeHeader(AUTHORIZATION) // remove Authorization .removeHeader(DATE); // remove date
.removeHeader(AUTHORIZATION) // remove Authorization .removeHeader(DATE); // remove date
.removeHeader(AUTHORIZATION) // remove Authorization .removeHeader(DATE); // remove date
.removeHeader(AUTHORIZATION) // .replaceHeader("X-Amz-Date", timestamp);
.removeHeader(AUTHORIZATION_HEADER) .removeHeader(AMZ_CONTENT_SHA256_HEADER) .removeHeader(AMZ_DATE_HEADER);
.removeHeader(AUTHORIZATION_HEADER) .removeHeader(AMZ_CONTENT_SHA256_HEADER) .removeHeader(AMZ_DATE_HEADER);
.removeHeader(AUTHORIZATION_HEADER) .removeHeader(AMZ_CONTENT_SHA256_HEADER) .removeHeader(AMZ_DATE_HEADER);
@Override public HttpRequest signForTemporaryAccess(HttpRequest request, long timeInSeconds) { // Update the 'DATE' header String dateString = request.getFirstHeaderOrNull(HttpHeaders.DATE); if (dateString == null) { dateString = timeStampProvider.get(); } Date date = dateService.rfc1123DateParse(dateString); String expiration = String.valueOf(TimeUnit.MILLISECONDS.toSeconds(date.getTime()) + timeInSeconds); HttpRequest.Builder<?> builder = request.toBuilder() .removeHeader(HttpHeaders.AUTHORIZATION) .replaceHeader(HttpHeaders.DATE, expiration); String stringToSign = createStringToSign(builder.build()); String signature = sign(stringToSign); HttpRequest ret = builder .addQueryParam(HttpHeaders.EXPIRES, expiration) .addQueryParam("AWSAccessKeyId", creds.get().identity) // Signature MUST be the last parameter because if it isn't, even encoded '+' values in the // signature will be converted to a space by a subsequent addQueryParameter. // See HttpRequestTest.testAddBase64AndUrlEncodedQueryParams for more details. .addQueryParam(S3Constants.TEMPORARY_SIGNATURE_PARAM, signature) .removeHeader(HttpHeaders.DATE) // remove signer created by RestAnnotationProcessor .filters(ImmutableList.<HttpRequestFilter>of()) .build(); return ret; } }
@Override public HttpRequest signForTemporaryAccess(HttpRequest request, long timeInSeconds) { // Update the 'DATE' header String dateString = request.getFirstHeaderOrNull(HttpHeaders.DATE); if (dateString == null) { dateString = timeStampProvider.get(); } Date date = dateService.rfc1123DateParse(dateString); String expiration = String.valueOf(TimeUnit.MILLISECONDS.toSeconds(date.getTime()) + timeInSeconds); HttpRequest.Builder<?> builder = request.toBuilder() .removeHeader(HttpHeaders.AUTHORIZATION) .replaceHeader(HttpHeaders.DATE, expiration); String stringToSign = createStringToSign(builder.build()); String signature = sign(stringToSign); HttpRequest ret = builder .addQueryParam(HttpHeaders.EXPIRES, expiration) .addQueryParam("AWSAccessKeyId", creds.get().identity) // Signature MUST be the last parameter because if it isn't, even encoded '+' values in the // signature will be converted to a space by a subsequent addQueryParameter. // See HttpRequestTest.testAddBase64AndUrlEncodedQueryParams for more details. .addQueryParam(S3Constants.TEMPORARY_SIGNATURE_PARAM, signature) .removeHeader(HttpHeaders.DATE) // remove signer created by RestAnnotationProcessor .filters(ImmutableList.<HttpRequestFilter>of()) .build(); return ret; } }
public void testSignPutUrlWithTime(final long timeout) throws InterruptedException, IOException { String name = "hello"; String text = "fooooooooooooooooooooooo"; Blob blob = view.getBlobStore().blobBuilder(name).payload(text).contentType("text/plain").build(); String container = getContainerName(); try { HttpRequest request = view.getSigner().signPutBlob(container, blob, 0); assertEquals(request.getFilters().size(), 0); // Strip Expect: 100-continue to make actual responses visible, since // Java 7+ will throw a ProtocolException instead of setting the response code: // http://www.docjar.com/html/api/sun/net/www/protocol/http/HttpURLConnection.java.html#1021 request = request.toBuilder().removeHeader(EXPECT).build(); try { Strings2.toStringAndClose(view.utils().http().invoke(request).getPayload().openStream()); fail("Temporary URL did not expire as expected"); } catch (AuthorizationException expected) { } } finally { returnContainer(container); } }
@Test public void testSignPutUrlWithTime() throws Exception { String name = "hello"; String text = "fooooooooooooooooooooooo"; Blob blob = view.getBlobStore().blobBuilder(name).payload(text).contentType("text/plain").build(); String container = getContainerName(); try { HttpRequest request = view.getSigner().signPutBlob(container, blob, getSignedUrlTimeout()); assertEquals(request.getFilters().size(), 0); // Strip Expect: 100-continue to make actual responses visible, since // Java 7+ will throw a ProtocolException instead of setting the response code: // http://www.docjar.com/html/api/sun/net/www/protocol/http/HttpURLConnection.java.html#1021 request = request.toBuilder().removeHeader(EXPECT).build(); Strings2.toStringAndClose(view.utils().http().invoke(request).getPayload().openStream()); } finally { returnContainer(container); } }
public void testRemoveHeader() { HttpRequest request = HttpRequest.builder() .method("GET") .endpoint("http://foo") .addHeader("foo", "bar").build(); assertEquals(request.toBuilder().removeHeader("foo").build(), HttpRequest.builder().method("GET").endpoint("http://foo").build()); }
@Override public HttpRequest filter(HttpRequest request) throws HttpException { return request.toBuilder().removeHeader(HttpHeaders.EXPECT).build(); } }
@Override public HttpRequest filter(HttpRequest request) throws HttpException { return request.toBuilder().removeHeader(HttpHeaders.EXPECT).build(); } }
@Override public HttpRequest filter(HttpRequest request) throws HttpException { return request.toBuilder().removeHeader(HttpHeaders.EXPECT).build(); } }
@Override public HttpRequest filter(HttpRequest request) throws HttpException { return request.toBuilder().removeHeader(HttpHeaders.EXPECT).build(); } }
public void testRemoveHeader() { HttpRequest request = HttpRequest.builder() .method("GET") .endpoint("http://foo") .addHeader("foo", "bar").build(); assertEquals(request.toBuilder().removeHeader("foo").build(), HttpRequest.builder().method("GET").endpoint("http://foo").build()); }