@Override public HttpHeader header(String key) { return target.header(key); }
@Override public boolean authenticate(Request request) { List<String> headerValues = FluentIterable.from(credentials).transform(new Function<BasicCredentials, String>() { @Override public String apply(BasicCredentials input) { return input.asAuthorizationHeaderValue(); } }).toList(); return request.containsHeader(AUTHORIZATION) && headerValues.contains(request.header(AUTHORIZATION).firstValue()); } }
@Override public ListOrSingle<String> apply(String input) { return ListOrSingle.of(request.header(input).values()); } });
private static HttpEntity applyGzipWrapperIfRequired(Request originalRequest, HttpEntity content) { if (originalRequest.containsHeader(CONTENT_ENCODING) && originalRequest.header(CONTENT_ENCODING).firstValue().contains("gzip")) { return new GzipCompressingEntity(content); } return content; }
@Override public boolean authenticate(Request request) { HttpHeader requestHeader = request.header(key); if (requestHeader == null || !requestHeader.isPresent()) { return false; } List<String> headerValues = requestHeader.values(); return request.containsHeader(AUTHORIZATION) && headerValues.contains(value); } }
private static HttpEntity buildEntityFrom(Request originalRequest) { ContentTypeHeader contentTypeHeader = originalRequest.contentTypeHeader().or("text/plain"); ContentType contentType = ContentType.create(contentTypeHeader.mimeTypePart(), contentTypeHeader.encodingPart().or("utf-8")); if (originalRequest.containsHeader(TRANSFER_ENCODING) && originalRequest.header(TRANSFER_ENCODING).firstValue().equals("chunked")) { return applyGzipWrapperIfRequired( originalRequest, new InputStreamEntity(new ByteArrayInputStream(originalRequest.getBody()), -1, contentType) ); } return applyGzipWrapperIfRequired( originalRequest, new ByteArrayEntity(originalRequest.getBody()) ); }
private void addRequestHeaders(HttpRequest httpRequest, ResponseDefinition response) { Request originalRequest = response.getOriginalRequest(); for (String key: originalRequest.getAllHeaderKeys()) { if (headerShouldBeTransferred(key)) { if (!HOST_HEADER.equalsIgnoreCase(key) || preserveHostHeader) { List<String> values = originalRequest.header(key).values(); for (String value: values) { httpRequest.addHeader(key, value); } } else { if (hostHeaderValue != null) { httpRequest.addHeader(key, hostHeaderValue); } else if (response.getProxyBaseUrl() != null) { httpRequest.addHeader(key, URI.create(response.getProxyBaseUrl()).getAuthority()); } } } } if (response.getAdditionalProxyRequestHeaders() != null) { for (String key: response.getAdditionalProxyRequestHeaders().keys()) { httpRequest.setHeader(key, response.getAdditionalProxyRequestHeaders().getHeader(key).firstValue()); } } }