@Override public ClientResponse handle(ClientRequest request) { // If 'Accept-Encoding' is not set, assume gzip as a default if (!request.getHeaders().containsKey(HttpHeaders.ACCEPT_ENCODING)) { request.getHeaders().add(HttpHeaders.ACCEPT_ENCODING, GZIP_ENCODING); } if (request.getEntity() != null) { Object requestEncoding = request.getHeaders().getFirst(HttpHeaders.CONTENT_ENCODING); if (GZIP_ENCODING.equals(requestEncoding)) { request.setAdapter(new GzipAdapter(request.getAdapter())); } else if (isCompressionEnabled()) { request.getHeaders().add(HttpHeaders.CONTENT_ENCODING, GZIP_ENCODING); request.setAdapter(new GzipAdapter(request.getAdapter())); } } ClientResponse response = getNext().handle(request); String responseEncoding = response.getHeaders().getFirst(HttpHeaders.CONTENT_ENCODING); if (response.hasEntity() && GZIP_ENCODING.equals(responseEncoding)) { response.getHeaders().remove(HttpHeaders.CONTENT_ENCODING); decompressResponse(response); } return response; }
getRequestHeaders( data, request.getHeaders() ); if ( request.getEntity() != null ) data.setPayload( String.valueOf( request.getEntity() ) ); if ( response.hasEntity() && response.getStatus() != 204 ) data.setEntity( response.getEntity( String.class ) ); if ( response.getType() != null ) assertTrue( "wrong headers: " + response.getHeaders(), headerField.other().test( response.getHeaders() .getFirst( headerField.first() ) ) ); data.setMethod( request.getMethod() ); data.setUri( uri ); data.setStatus( responseCode );
@Override public ClientResponse handle(ClientRequest cr) throws ClientHandlerException { Map<String, List<String>> stringHeaders = new HashMap<>(); for (String key : cr.getHeaders().keySet()) { List<String> vals = new ArrayList<>(); for (Object val : cr.getHeaders().get(key)) { vals.add((String) val); } stringHeaders.put(key, vals); } Map<String, String> signedHeaders = signer.signRequest(cr.getURI(), cr.getMethod(), stringHeaders, cr.getEntity()); for (String key : signedHeaders.keySet()) { cr.getHeaders().putSingle(key, signedHeaders.get(key)); } return getNext().handle(cr); } }
private Map<String, String> asMap(MultivaluedMap<String, Object> headers) { HashMap<String, String> map = new HashMap<>(); for (Map.Entry<String, List<Object>> e : headers.entrySet()) { for (Object v : e.getValue()) { map.put(e.getKey(), ClientRequest.getHeaderValue(v)); } } return map; }
@Override public ClientResponse handle( ClientRequest request ) throws ClientHandlerException { List<Object> authorizationHeader = request.getHeaders().get( "Authorization" ); String authToken = (String) authorizationHeader.get( 0 ); request.getHeaders().put( "Cookie", cookiesList ); request.getHeaders().remove( "Authorization" ); ClientResponse response = getNext().handle( request ); if ( response.getStatus() == HttpStatus.SC_UNAUTHORIZED ) { logger.warn( "Request to" + request.getURI() + "returned Unauthorized." ); if ( logger.isDebugEnabled() ) { logger.debug( "http status=" + response.getStatus() + " response=" + response.getEntity( String.class ) ); request.getHeaders().remove( "Cookie" ); request.getHeaders().put( "Authorization", authorizationHeader ); logger.warn( "Trying one more time" ); response = getNext().handle( request ); if ( response.getStatus() == HttpStatus.SC_UNAUTHORIZED ) { logger.error( "Request to" + request.getURI() + "returned Unauthorized 2nd time." ); logger.error( "http status=" + response.getStatus() + " response=" + response.getEntity( String.class ) );
public ClientResponse handle(ClientRequest request) throws ClientHandlerException { ClientResponse response = getNext().handle(request); if (response.getStatus() > 299) { if (response.getStatus() == 403) { Date clientTime = RestUtil.headerParse(RestUtil.getFirstAsString(request.getHeaders(), S3Constants.AMZ_DATE)); if (clientTime == null) clientTime = RestUtil.headerParse(RestUtil.getFirstAsString(request.getHeaders(), RestUtil.HEADER_DATE)); Date serverTime = RestUtil.headerParse(RestUtil.getFirstAsString(response.getHeaders(), RestUtil.HEADER_DATE)); if (clientTime != null && serverTime != null) { long skew = clientTime.getTime() - serverTime.getTime(); Response.StatusType st = response.getStatusInfo(); throw new S3Exception(st.getReasonPhrase(), st.getStatusCode(), guessStatus(st.getStatusCode()), response.getHeaders().getFirst("x-amz-request-id"));
@Override public ClientResponse handle(final ClientRequest cr) throws ClientHandlerException { if (!cr.getHeaders().containsKey(HttpHeaders.AUTHORIZATION)) { cr.getHeaders().add(HttpHeaders.AUTHORIZATION, authentication); } return getNext().handle(cr); } }
private void compressReqeustIfCompressionEnabled(final ClientRequest request, final boolean compressionEnabled) { // compress request if (request.getEntity() != null) { final Object o = request.getHeaders().getFirst(HttpHeaders.CONTENT_ENCODING); if (o != null && o.equals(GZIP)) { request.setAdapter(new GZIPAdapter(request.getAdapter())); } else if (compressionEnabled) { request.getHeaders().add(HttpHeaders.CONTENT_ENCODING, GZIP); request.setAdapter(new GZIPAdapter(request.getAdapter())); } } }
@Override public ClientResponse handle(ClientRequest request) throws ClientHandlerException { request.getHeaders().add( HttpHeaders.USER_AGENT, USER_AGENT); return getNext().handle(request); } });
public ClientResponse handle(final ClientRequest request) throws ClientHandlerException { if (!request.getHeaders().containsKey("Authorization")) { switch (state) { case MANAGED: if (clientResponse.getStatus() >= 400) { return clientResponse; Form response = clientResponse.getEntity(Form.class); String token = response.getFirst(OAuthParameters.TOKEN); parameters.token(token); if (clientResponse.getStatus() >= 400) { return clientResponse; UniformInterfaceException uie = null; try { response = getNext().handle(request); } catch (UniformInterfaceException e) { response = e.getResponse(); uie = e; && response.getStatusInfo().getStatusCode() == ClientResponse.Status.UNAUTHORIZED.getStatusCode()) { request.getHeaders().remove("Authorization"); parameters.token(null); secrets.tokenSecret(null);
private void setContentLengthHeader(ClientRequest clientRequest, int size) { // Skip if already set if (clientRequest.getHeaders().getFirst("Content-Length") != null) { return; } // Skip if size is unknown if (size < 0) { return; } clientRequest.getHeaders().putSingle("Content-Length", size); }
@Override public String getHeader(String name) { List<Object> headers = clientRequest.getHeaders().get(name); if (headers != null && headers.size() > 0) { return (String) headers.get(0); } return null; }
@Override public ClientResponse handle(ClientRequest cr) throws ClientHandlerException { if (authInfo != null) { cr.getHeaders().putSingle(AbstractEurekaIdentity.AUTH_NAME_HEADER_KEY, authInfo.getName()); cr.getHeaders().putSingle(AbstractEurekaIdentity.AUTH_VERSION_HEADER_KEY, authInfo.getVersion()); if (authInfo.getId() != null) { cr.getHeaders().putSingle(AbstractEurekaIdentity.AUTH_ID_HEADER_KEY, authInfo.getId()); } } return getNext().handle(cr); } }
@SuppressWarnings("unchecked") @Override public ClientResponse handle(ClientRequest request) throws ClientHandlerException { Map<String, String> userMeta = (Map<String, String>) request.getProperties().get(RestUtil.PROPERTY_USER_METADATA); Map<String, String> metaBackup = null; Boolean encode = (Boolean) request.getProperties().get(RestUtil.PROPERTY_ENCODE_ENTITY); if (encode != null && encode) { request.getHeaders().putAll(S3ObjectMetadata.getUmdHeaders(userMeta)); request.setAdapter(new EncryptAdapter(request.getAdapter(), danglingStream, encodeStream)); response = getNext().handle(request); } catch (RuntimeException e) { if (encode != null && encode) { Boolean decode = (Boolean) request.getProperties().get(RestUtil.PROPERTY_DECODE_ENTITY); if (decode != null && decode) { response.setEntityInputStream(decodeChain.getDecodeStream(response.getEntityInputStream(), storedMeta)); } else { Boolean keepHeaders = (Boolean) request.getProperties().get(RestUtil.PROPERTY_KEEP_ENCODE_HEADERS); if (keepHeaders == null || !keepHeaders) { headers.remove(S3ObjectMetadata.getHeaderName(key));
@Override public ClientResponse handle(ClientRequest request) throws ClientHandlerException { String namespace = (String) request.getProperties().get(RestUtil.PROPERTY_NAMESPACE); if (namespace != null) { if (s3Config.isUseVHost()) { request.setURI(insertNamespace(request.getURI(), namespace)); } else { // add to headers (x-emc-namespace: namespace) request.getHeaders().putSingle(RestUtil.EMC_NAMESPACE, namespace); } } return getNext().handle(request); } }
@Override public List<String> getHeaderValues(final String name) { ArrayList<String> list = new ArrayList(); for (Object header : clientRequest.getHeaders().get(name)) { list.add(ClientRequest.getHeaderValue(header)); } return list; }
@Override public Map<String, String> getAllHeaders() { Map<String, String> allHeaders = new HashMap<String, String>(); for (Map.Entry<String, List<Object>> header : clientRequest.getHeaders().entrySet()) { if (header != null && header.getValue().size() > 0) { allHeaders.put(header.getKey(), (String) header.getValue().get(0)); } } return allHeaders; }
@Override public ClientResponse handle(ClientRequest request) throws ClientHandlerException { Boolean bypass = (Boolean) request.getProperties().get(BYPASS_LOAD_BALANCER); if (bypass != null && bypass) { return getNext().handle(request); Host host = smartConfig.getLoadBalancer().getTopHost(request.getProperties()); URI uri = request.getURI(); try { org.apache.http.HttpHost httpHost = new org.apache.http.HttpHost(host.getName(), uri.getPort(), uri.getScheme()); throw new RuntimeException("load-balanced host generated invalid URI", e); request.setURI(uri); ClientResponse response = getNext().handle(request); if (response.getStatus() >= 500 && response.getStatus() != 501) { response.setEntityInputStream(new WrappedInputStream(response.getEntityInputStream(), host));
public class JerseyClientFilter extends ClientFilter { @Override public ClientResponse handle(ClientRequest request) { long startTime = System.currentTimeMillis(); // execute call... ClientResponse response = getNext().handle(request); // build log... StringBuilder sb = new StringBuilder(); sb.append("HTTP:").append(response.getStatus()); sb.append(" - Time:[").append(System.currentTimeMillis() - startTime).append("ms]"); sb.append(" - User:").append(this.findLogon(request)); sb.append(" - Path:").append(request.getURI()); sb.append(" - Content-type:").append(request.getHeaders().get(HttpHeaders.CONTENT_TYPE)); sb.append(" - Accept:").append(request.getHeaders().get(HttpHeaders.ACCEPT)); sb.append(" - RequestBody:").append(request.getEntity() != null ? request.getEntity().toString() : "none"); sb.append(" - ResponseBody:").append(this.logResponse(response)); new TmaticwsInfoEvent(TmaticwsConstants.LOG_OUTBOUND_REST, this, request.getMethod(), sb.toString()); return response; }
@Override public ClientResponse handle(ClientRequest cr) throws ClientHandlerException { URIBuilder uriBuilder = new URIBuilder(cr.getURI()); String path = uriBuilder.getPath(); uriBuilder.setPath(converter.convertCommandPath(path)); try { cr.setURI(uriBuilder.build()); ClientResponse response = getNext().handle(cr); String newEntity = converter.convertResponse(path, response.getEntity(String.class)); response.setEntityInputStream(new ByteArrayInputStream(newEntity.getBytes())); return response; } catch (Exception ex) { throw new ClientHandlerException(ex); } }