private void assertHeadersContains(HttpHeaders actual) { contains.entrySet().stream().forEach(e -> { assertEquals(e.getValue(), actual.getHeader(e.getKey()).firstValue()); }); }
private void assertHeadersContains(HttpHeaders actual) { contains.entrySet().stream().forEach(e -> { assertEquals(e.getValue(), actual.getHeader(e.getKey()).firstValue()); }); }
@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 @JsonIgnore public String getHeader(String key) { HttpHeader header = header(key); if (header.isPresent()) { return header.firstValue(); } return null; }
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 void serialize(HttpHeaders headers, JsonGenerator jgen, SerializerProvider provider) throws IOException { jgen.writeStartObject(); for (HttpHeader header: headers.all()) { if (header.isSingleValued()) { jgen.writeStringField(header.key(), header.firstValue()); } else { jgen.writeArrayFieldStart(header.key()); for (String value: header.values()) { jgen.writeString(value); } jgen.writeEndArray(); } } jgen.writeEndObject(); } }
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()) ); }
public ContentTypeHeader getContentTypeHeader() { HttpHeader header = getHeader(ContentTypeHeader.KEY); if (header.isPresent()) { return new ContentTypeHeader(header.firstValue()); } return ContentTypeHeader.absent(); }
@Override public Body getBody() { try { byte[] bytes = ByteStreams.toByteArray(mPart.getInputStream()); HttpHeader header = getHeader(ContentTypeHeader.KEY); ContentTypeHeader contentTypeHeader = header.isPresent() ? new ContentTypeHeader(header.firstValue()) : ContentTypeHeader.absent(); return Body.ofBinaryOrText(bytes, contentTypeHeader); } catch (IOException e) { return throwUnchecked(e, Body.class); } }
private MultipartValuePattern valuePatternForPart(Request.Part part) { MultipartValuePatternBuilder builder = new MultipartValuePatternBuilder().withName(part.getName()).matchingType(MultipartValuePattern.MatchingType.ALL); if (!headersToMatch.isEmpty()) { Collection<HttpHeader> all = part.getHeaders().all(); for (HttpHeader httpHeader : all) { if (headersToMatch.contains(httpHeader.caseInsensitiveKey())) { builder.withHeader(httpHeader.key(), equalTo(httpHeader.firstValue())); } } } HttpHeader contentType = part.getHeader("Content-Type"); if (!contentType.isPresent() || contentType.firstValue().contains("text")) { builder.withBody(equalTo(part.getBody().asString())); } else if (contentType.firstValue().contains("json")) { builder.withBody(equalToJson(part.getBody().asString(), true, true)); } else if (contentType.firstValue().contains("xml")) { builder.withBody(equalToXml(part.getBody().asString())); } else { builder.withBody(binaryEqualTo(part.getBody().asBytes())); } return builder.build(); }
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()); } } }
private RequestPattern buildRequestPatternFrom(Request request) { RequestPatternBuilder builder = newRequestPattern(request.getMethod(), urlEqualTo(request.getUrl())); if (!headersToMatch.isEmpty()) { for (HttpHeader header: request.getHeaders().all()) { if (headersToMatch.contains(header.caseInsensitiveKey())) { builder.withHeader(header.key(), equalTo(header.firstValue())); } } } if (request.isMultipart()) { for (Request.Part part : request.getParts()) { builder.withRequestBodyPart(valuePatternForPart(part)); } } else { String body = request.getBodyAsString(); if (!body.isEmpty()) { builder.withRequestBody(valuePatternForContentType(request)); } } return builder.build(); }