@SuppressWarnings("unchecked") @Override public <R extends HttpRequest> R bindToRequest(R request, Object input) { checkArgument(checkNotNull(input, "input") instanceof Iterable<?>, "this binder is only valid for Iterable!"); checkNotNull(request, "request"); Iterable<String> emails = (Iterable<String>) input; String emailCSV = Joiner.on(", ").join((List<String>) emails); ImmutableMultimap<String, String> headers = ImmutableMultimap.<String, String> of(CloudFilesHeaders.CDN_CONTAINER_PURGE_OBJECT_EMAIL, emailCSV); return (R) request.toBuilder().replaceHeaders(headers).build(); } }
@SuppressWarnings("unchecked") @Override public <R extends HttpRequest> R bindToRequest(R request, Object input) { checkArgument(checkNotNull(input, "input") instanceof Iterable<?>, "this binder is only valid for Iterable!"); checkNotNull(request, "request"); Iterable<String> emails = (Iterable<String>) input; String emailCSV = Joiner.on(", ").join((List<String>) emails); ImmutableMultimap<String, String> headers = ImmutableMultimap.<String, String> of(CloudFilesHeaders.CDN_PURGE_OBJECT_EMAIL, emailCSV); return (R) request.toBuilder().replaceHeaders(headers).build(); } }
@SuppressWarnings("unchecked") @Override public <R extends HttpRequest> R bindToRequest(R request, Object input) { checkArgument(checkNotNull(input, "input") instanceof Iterable<?>, "this binder is only valid for Iterable!"); checkNotNull(request, "request"); Iterable<String> emails = (Iterable<String>) input; String emailCSV = Joiner.on(", ").join((List<String>) emails); ImmutableMultimap<String, String> headers = ImmutableMultimap.<String, String> of(CloudFilesHeaders.CDN_CONTAINER_PURGE_OBJECT_EMAIL, emailCSV); return (R) request.toBuilder().replaceHeaders(headers).build(); } }
@SuppressWarnings("unchecked") @Override public <R extends HttpRequest> R bindToRequest(R request, Object input) { checkArgument(checkNotNull(input, "input") instanceof Map<?,?>, "this binder is only valid for Maps!"); checkNotNull(request, "request"); Map<String, String> userMetadata = Maps2.transformKeys((Map<String, String>) input, FN); return (R) request.toBuilder().replaceHeaders(Multimaps.forMap(userMetadata)).build(); }
@SuppressWarnings("unchecked") @Override public <R extends HttpRequest> R bindToRequest(R request, Object input) { checkArgument(checkNotNull(input, "input") instanceof Map<?, ?>, "this binder is only valid for Maps!"); checkNotNull(request, "request"); Map<String, String> userMetadata = Maps2.transformKeys((Map<String, String>) input, fn); return (R) request.toBuilder().replaceHeaders(Multimaps.forMap(userMetadata)).build(); }
@SuppressWarnings("unchecked") @Override public <R extends HttpRequest> R bindToRequest(R request, Object input) { checkArgument(checkNotNull(input, "input") instanceof UserMetadata, "this binder is only valid for UserMetadatas!"); checkNotNull(request, "request"); return (R) request.toBuilder().replaceHeaders(Multimaps.forMap(apply(UserMetadata.class.cast(input)))).build(); }
@VisibleForTesting HttpRequest calculateAndReplaceAuthorizationHeaders(HttpRequest request, String toSign) throws HttpException { String signature = sign(toSign); if (signatureWire.enabled()) signatureWire.input(Strings2.toInputStream(signature)); String[] signatureLines = Iterables.toArray(Splitter.fixedLength(60).split(signature), String.class); Multimap<String, String> headers = ArrayListMultimap.create(); for (int i = 0; i < signatureLines.length; i++) { headers.put("X-Ops-Authorization-" + (i + 1), signatureLines[i]); } return request.toBuilder().replaceHeaders(headers).build(); }
@VisibleForTesting HttpRequest calculateAndReplaceAuthorizationHeaders(HttpRequest request, String toSign) throws HttpException { String signature = sign(toSign); if (signatureWire.enabled()) signatureWire.input(Strings2.toInputStream(signature)); String[] signatureLines = Iterables.toArray(Splitter.fixedLength(60).split(signature), String.class); Multimap<String, String> headers = ArrayListMultimap.create(); for (int i = 0; i < signatureLines.length; i++) { headers.put("X-Ops-Authorization-" + (i + 1), signatureLines[i]); } return request.toBuilder().replaceHeaders(headers).build(); }
public void testReplaceHeaders() { HttpRequest request = HttpRequest.builder().method("GET").endpoint("http://foo") .addHeader("foo", "bar") .addHeader("rabbit", "tree").build(); assertEquals( request.toBuilder() .replaceHeaders(ImmutableMultimap.of("foo", "bar", "rabbit", "robot", "robert", "baz")).build().getHeaders(), ImmutableMultimap.of("foo", "bar", "rabbit", "robot", "robert", "baz")); }
HttpRequest replaceDateHeader(HttpRequest request) { Builder<String, String> builder = ImmutableMap.builder(); String date = timeStampProvider.get(); builder.put(HttpHeaders.DATE, date); request = request.toBuilder().replaceHeaders(Multimaps.forMap(builder.build())).build(); return request; }
@SuppressWarnings("unchecked") @Override public <R extends HttpRequest> R bindToRequest(R request, Object input) { checkArgument(checkNotNull(input, "input") instanceof UserMetadata, "this binder is only valid for UserMetadatas!"); checkNotNull(request, "request"); return (R) request.toBuilder().replaceHeaders(Multimaps.forMap(apply(UserMetadata.class.cast(input)))).build(); }
@SuppressWarnings("unchecked") @Override public <R extends HttpRequest> R bindToRequest(R request, Object input) { checkArgument(checkNotNull(input, "input") instanceof Iterable<?>, "this binder is only valid for Iterable!"); checkNotNull(request, "request"); Iterable<String> emails = (Iterable<String>) input; String emailCSV = Joiner.on(", ").join((List<String>) emails); ImmutableMultimap<String, String> headers = ImmutableMultimap.<String, String> of(CloudFilesHeaders.CDN_CONTAINER_PURGE_OBJECT_EMAIL, emailCSV); return (R) request.toBuilder().replaceHeaders(headers).build(); } }
@SuppressWarnings("unchecked") @Override public <R extends HttpRequest> R bindToRequest(R request, Object input) { checkNotNull(request, "request"); checkArgument(input instanceof Map<?, ?>, "input must be a non-null java.util.Map!"); Map<String, String> metadata = Map.class.cast(input); ImmutableMultimap<String, String> headers = toHeaders(metadata); return (R) request.toBuilder().replaceHeaders(headers).build(); }
HttpRequest replaceDateHeader(HttpRequest request) { Builder<String, String> builder = ImmutableMap.builder(); String date = timeStampProvider.get(); builder.put(HttpHeaders.DATE, date); request = request.toBuilder().replaceHeaders(Multimaps.forMap(builder.build())).build(); return request; }
@Override public HttpRequest filter(HttpRequest request) throws HttpException { String token = vcloudTokenProvider.get(); return request .toBuilder() .replaceHeaders( ImmutableMultimap.of("x-vcloud-authorization", token, HttpHeaders.COOKIE, "vcloud-token=" + token)).build(); } }
@SuppressWarnings("unchecked") @Override public <R extends HttpRequest> R bindToRequest(R request, Object input) { checkArgument(checkNotNull(input, "input") instanceof Map<?,?>, "this binder is only valid for Maps!"); checkNotNull(request, "request"); Map<String, String> userMetadata = Maps2.transformKeys((Map<String, String>) input, FN); return (R) request.toBuilder().replaceHeaders(Multimaps.forMap(userMetadata)).build(); }
@SuppressWarnings("unchecked") @Override public <R extends HttpRequest> R bindToRequest(R request, Object input) { checkArgument(checkNotNull(input, "input") instanceof UserMetadata, "this binder is only valid for UserMetadatas!"); checkNotNull(request, "request"); return (R) request.toBuilder().replaceHeaders(Multimaps.forMap(apply(UserMetadata.class.cast(input)))).build(); }
@SuppressWarnings("unchecked") @Override public <R extends HttpRequest> R bindToRequest(R request, Object input) { checkArgument(checkNotNull(input, "input") instanceof Map<?,?>, "this binder is only valid for Maps!"); checkNotNull(request, "request"); Map<String, String> userMetadata = Maps2.transformKeys((Map<String, String>) input, FN); return (R) request.toBuilder().replaceHeaders(Multimaps.forMap(userMetadata)).build(); }
HttpRequest replaceDateHeader(HttpRequest request) { Builder<String, String> builder = ImmutableMap.builder(); String date = timeStampProvider.get(); builder.put(HttpHeaders.DATE, date); request = request.toBuilder().replaceHeaders(Multimaps.forMap(builder.build())).build(); return request; }
public void testReplaceHeaders() { HttpRequest request = HttpRequest.builder().method("GET").endpoint("http://foo") .addHeader("foo", "bar") .addHeader("rabbit", "tree").build(); assertEquals( request.toBuilder() .replaceHeaders(ImmutableMultimap.of("foo", "bar", "rabbit", "robot", "robert", "baz")).build().getHeaders(), ImmutableMultimap.of("foo", "bar", "rabbit", "robot", "robert", "baz")); }