Client client = request.getClient(); String method = request.getMethod(); MediaType mediaType = request.getMediaType(); URI lUri = request.getUri(); for (Map.Entry<String, List<Object>> entry : request.getHeaders().entrySet()) { if (HttpHeaders.AUTHORIZATION.equals(entry.getKey())) { continue; newHeaders.put(entry.getKey(), entry.getValue()); newHeaders.add(HttpHeaders.AUTHORIZATION, newAuthorizationHeader); builder.headers(newHeaders); if (request.getEntity() == null) { invocation = builder.build(method); } else { invocation = builder.build(method, Entity.entity(request.getEntity(), request.getMediaType())); response.setEntityStream(nextResponse.readEntity(InputStream.class)); return response.getStatus() != Response.Status.UNAUTHORIZED.getStatusCode();
@Override public void filter(ClientRequestContext request) throws IOException { String token = this.accessToken; final String propertyToken = (String) request.getProperty(OAuth2ClientSupport.OAUTH2_PROPERTY_ACCESS_TOKEN); if (propertyToken != null) { token = propertyToken; } request.removeProperty(OAuth2ClientSupport.OAUTH2_PROPERTY_ACCESS_TOKEN); if (token == null) { return; } String authentication = "Bearer " + token; if (!request.getHeaders().containsKey(HttpHeaders.AUTHORIZATION)) { request.getHeaders().add(HttpHeaders.AUTHORIZATION, authentication); } } }
@Override public void filter(ClientRequestContext request) throws IOException { if ("true".equals(request.getProperty(REQUEST_PROPERTY_FILTER_REUSED))) { return; if (request.getHeaders().containsKey(HttpHeaders.AUTHORIZATION)) { return; request.setProperty(REQUEST_PROPERTY_OPERATION, lastSuccessfulMethod); if (lastSuccessfulMethod == Type.BASIC) { basicAuth.filterRequest(request); request.setProperty(REQUEST_PROPERTY_OPERATION, operation);
@Override public void filter(ClientRequestContext context) throws IOException { if (context.hasEntity() && context.getHeaders().getFirst(HttpHeaders.CONTENT_ENCODING) == null && this.forceEncoding) { context.getHeaders().add(HttpHeaders.CONTENT_ENCODING, "gzip"); } }
@Override public void filter(ClientRequestContext rc) throws IOException { if (!METHODS_TO_IGNORE.contains(rc.getMethod()) && !rc.getHeaders().containsKey(HEADER_NAME)) { rc.getHeaders().add(HEADER_NAME, requestedBy); } } }
public void updateOnNotModified(ClientRequestContext request, BrowserCache.Entry old, ClientResponseContext response) old.getHeaders().remove(HttpHeaders.CACHE_CONTROL); old.getHeaders().remove(HttpHeaders.EXPIRES); old.getHeaders().remove(HttpHeaders.LAST_MODIFIED); String cc = (String) response.getHeaderString(HttpHeaders.CACHE_CONTROL); String exp = (String) response.getHeaderString(HttpHeaders.EXPIRES); int expires = -1; String lastModified = (String) response.getHeaderString(HttpHeaders.LAST_MODIFIED); String etag = (String) response.getHeaderString(HttpHeaders.ETAG); BrowserCache.Entry entry = cache.put(request.getUri().toString(), old.getMediaType(), old.getHeaders(), old.getCached(), expires, etag, lastModified); useCacheEntry(response, entry);
@Override public void filter(ClientRequestContext request) throws IOException if (!request.getMethod().equalsIgnoreCase("GET")) return; try cache.remove(request.getUri().toString(), entry.getMediaType()); for (BrowserCache.Header header : headers) request.getHeaders().putSingle(header.getName(), header.getValue()); request.setProperty("expired.cache.entry", entry); return; request.setProperty("cached", "cached"); request.abortWith(cachedResponse(entry));
public void cacheIfPossible(ClientRequestContext request, ClientResponseContext response) throws IOException { String cc = (String) response.getHeaderString(HttpHeaders.CACHE_CONTROL); String exp = (String) response.getHeaderString(HttpHeaders.EXPIRES); int expires = -1; if (cc != null) { CacheControl cacheControl = CacheControl.valueOf(cc); if (cacheControl.isNoCache()) return; expires = cacheControl.getMaxAge(); } else if (exp != null) { Date date = DateUtil.parseDate(exp); expires = (int) ((date.getTime() - System.currentTimeMillis()) / 1000); } String lastModified = (String) response.getHeaderString(HttpHeaders.LAST_MODIFIED); String etag = (String) response.getHeaderString(HttpHeaders.ETAG); String contentType = (String) response.getHeaderString(HttpHeaders.CONTENT_TYPE); String accept = (String) request.getHeaderString(HttpHeaders.ACCEPT); byte[] cached = ReadFromStream.readFromStream(1024, response.getEntityStream()); // if Accept is present, use it, if not fallback to response Content-Type MediaType mediaType = accept != null ? MediaType.valueOf(accept) : MediaType.valueOf(contentType); final BrowserCache.Entry entry = cache.put(request.getUri().toString(), mediaType, response.getHeaders(), cached, expires, etag, lastModified); response.setEntityStream(new ByteArrayInputStream(cached)); }
@Override public void filter(ClientRequestContext requestContext, ClientResponseContext responseContext) throws IOException { RequestData requestData = RequestDataThreadHolder.get(); if (requestContext.getProperty(CLEAR_REQUEST) != null) { RequestDataThreadHolder.clear(); } String interval = InterceptorUtil.intervalToString(requestData.getStartTime(), System.currentTimeMillis()); LOGGER.info("{}", LoggerRestConfiguration.msgClientSucceed(requestData.getPrincipal(), requestContext.getMethod(), requestContext.getUri().toString(), interval, responseContext.getStatus())); }
protected BrowserCache.Entry getEntry(ClientRequestContext request) throws Exception { String uri = request.getUri().toString(); List<MediaType> acceptableMediaTypes = request.getAcceptableMediaTypes(); BrowserCache.Entry entry = null; if (acceptableMediaTypes.size() > 0) { for (MediaType accept : acceptableMediaTypes) { entry = cache.get(uri, accept); if (entry != null) return entry; if (MediaTypeHelper.isTextLike(accept)) { entry = cache.get(uri, accept.withCharset("UTF-8")); if (entry != null) return entry; } } } else { return cache.getAny(uri); } return null; }
SecurityContext context = (SecurityContext) requestContext.getProperty(ClientSecurityFeature.PROPERTY_CONTEXT); .start(); String explicitProvider = (String) requestContext.getProperty(ClientSecurityFeature.PROPERTY_PROVIDER); outboundEnv.method(requestContext.getMethod()) .path(requestContext.getUri().getPath()) .targetUri(requestContext.getUri()) .headers(HttpUtil.toSimpleMap(requestContext.getStringHeaders())); for (String name : requestContext.getPropertyNames()) { outboundEp.addAtribute(name, requestContext.getProperty(name)); MultivaluedMap<String, Object> hdrs = requestContext.getHeaders(); for (Map.Entry<String, List<String>> entry : newHeaders.entrySet()) { LOGGER.finest(() -> " + Header: " + entry.getKey() + ": " + entry.getValue()); hdrs.remove(entry.getKey()); for (String value : entry.getValue()) { hdrs.add(entry.getKey(), value);
@Override public void filter(ClientRequestContext requestContext) throws IOException { Tracer.SpanBuilder spanBuilder = GlobalTracer.get() .buildSpan(LocalizationMessages.OPENTRACING_SPAN_PREFIX_CLIENT() + requestContext.getMethod()) .withTag(Tags.SPAN_KIND.getKey(), Tags.SPAN_KIND_CLIENT) .withTag(Tags.SPAN_KIND.getKey(), Tags.SPAN_KIND_CLIENT) .withTag(Tags.HTTP_URL.getKey(), requestContext.getUri().toASCIIString()) .withTag(Tags.HTTP_METHOD.getKey(), requestContext.getMethod()) .withTag(LocalizationMessages.OPENTRACING_TAG_HAS_REQUEST_ENTITY(), requestContext.hasEntity()) .withTag(LocalizationMessages.OPENTRACING_TAG_ACCEPTABLE_MEDIA_TYPES(), requestContext.getAcceptableMediaTypes() .stream() .map(MediaType::toString) .collect(Collectors.joining(", "))) .withTag(LocalizationMessages.OPENTRACING_TAG_REQUEST_HEADERS(), OpenTracingUtils.headersAsString(requestContext.getHeaders())); // if pre-stored "span" property is found, propagate the stored context final Object property = requestContext.getProperty(OpenTracingFeature.SPAN_CONTEXT_PROPERTY); if (property != null && property instanceof SpanContext) { spanBuilder = spanBuilder.asChildOf((SpanContext) property); } Span span = spanBuilder.startManual(); requestContext.setProperty(OpenTracingFeature.SPAN_CONTEXT_PROPERTY, span); Map<String, String> addedHeaders = new HashMap<>(); GlobalTracer.get().inject(span.context(), Format.Builtin.HTTP_HEADERS, new TextMapInjectAdapter(addedHeaders)); addedHeaders.forEach((key, value) -> requestContext.getHeaders().add(key, value)); } }
@Override public void filter(ClientRequestContext request, ClientResponseContext response) throws IOException { StringBuilder debugMsgBuilder = new StringBuilder(); debugMsgBuilder.append("ClientRequest: ").append(request.getMethod()).append("\t"); debugMsgBuilder.append(request.getUri().toASCIIString()).append("\t"); appendObjectHeaders(debugMsgBuilder, "> ", request.getHeaders().entrySet()); appendStringHeaders(debugMsgBuilder, "< ", response.getHeaders().entrySet()); debugMsgBuilder.append(response.getStatusInfo()).append(", length=").append(response.getLength()).append(" "); Long requestStartTime = (Long) request.getProperty(PROPERTY_NANOS); if (requestStartTime != null) { debugMsgBuilder .append((System.nanoTime() - requestStartTime) / MILLISECONDS_PER_NANOSECOND) .append(" ms\t"); } LOG.debug(debugMsgBuilder.toString()); RequestLog.stopTiming(CLIENT_TOTAL_TIMER); }
@Override public void filter(ClientRequestContext requestContext) throws IOException { if (!requestContext.getHeaders().containsKey(HttpHeaders.ACCEPT_ENCODING)) { requestContext.getHeaders().add(HttpHeaders.ACCEPT_ENCODING, "gzip"); } if (hasEntity(requestContext) && isCompressionEnabled()) { Object contentEncoding = requestContext.getHeaders().getFirst(HttpHeaders.CONTENT_ENCODING); if (!"gzip".equals(contentEncoding)) { requestContext.getHeaders().add(HttpHeaders.CONTENT_ENCODING, "gzip"); } } }
if (Response.Status.fromStatusCode(response.getStatus()) == Response.Status.UNAUTHORIZED) { final DigestScheme digestScheme = parseAuthHeaders(response.getHeaders().get(HttpHeaders.WWW_AUTHENTICATE)); if (digestScheme == null) { return false; request, cred)); if (success) { digestCache.put(request.getUri(), digestScheme); } else { digestCache.remove(request.getUri());