@Override protected void service(final HttpServletRequest request, final HttpServletResponse response) throws ServletException, IOException { final int requestId = getRequestId(request); String rewrittenTarget = rewriteTarget(request); if (_log.isDebugEnabled()) { StringBuffer uri = request.getRequestURL(); if (request.getQueryString() != null) uri.append("?").append(request.getQueryString()); if (_log.isDebugEnabled()) _log.debug("{} rewriting: {} -> {}", requestId, uri, rewrittenTarget); } if (rewrittenTarget == null) { onProxyRewriteFailed(request, response); return; } final Request proxyRequest = getHttpClient().newRequest(rewrittenTarget).method(request.getMethod()).version(HttpVersion.fromString(request.getProtocol())); copyRequestHeaders(request, proxyRequest); addProxyHeaders(request, proxyRequest); // final AsyncContext asyncContext = request.startAsync(); // We do not timeout the continuation, but the proxy request // asyncContext.setTimeout(0); proxyRequest.timeout(getTimeout(), TimeUnit.MILLISECONDS); if (hasContent(request)) proxyRequest.content(proxyRequestContent(request, response, proxyRequest)); sendProxyRequest(request, response, proxyRequest); }
.version(HttpVersion.fromString(clientRequest.getProtocol()));
request.version(HttpVersion.HTTP_1_1);
request.version(HttpVersion.HTTP_1_1);
.version(HttpVersion.fromString(request.getProtocol()));
protected Request copyRequest(Request oldRequest, URI newURI) { Request newRequest = new HttpRequest(this, oldRequest.getConversationID(), newURI); newRequest.method(oldRequest.getMethod()) .version(oldRequest.getVersion()) .content(oldRequest.getContent()); for (HttpField header : oldRequest.getHeaders()) { // We have a new URI, so skip the host header if present if (HttpHeader.HOST == header.getHeader()) continue; // Remove expectation headers if (HttpHeader.EXPECT == header.getHeader()) continue; // Remove cookies if (HttpHeader.COOKIE == header.getHeader()) continue; // Remove authorization headers if (HttpHeader.AUTHORIZATION == header.getHeader() || HttpHeader.PROXY_AUTHORIZATION == header.getHeader()) continue; newRequest.header(header.getName(), header.getValue()); } return newRequest; }
protected Request copyRequest(Request oldRequest, URI newURI) { Request newRequest = new HttpRequest(this, oldRequest.getConversationID(), newURI); newRequest.method(oldRequest.getMethod()) .version(oldRequest.getVersion()) .content(oldRequest.getContent()); for (HttpField header : oldRequest.getHeaders()) { // We have a new URI, so skip the host header if present if (HttpHeader.HOST == header.getHeader()) continue; // Remove expectation headers if (HttpHeader.EXPECT == header.getHeader()) continue; // Remove cookies if (HttpHeader.COOKIE == header.getHeader()) continue; // Remove authorization headers if (HttpHeader.AUTHORIZATION == header.getHeader() || HttpHeader.PROXY_AUTHORIZATION == header.getHeader()) continue; newRequest.header(header.getName(), header.getValue()); } return newRequest; }
.version(oldRequest.getVersion()) .content(oldRequest.getContent()) .idleTimeout(oldRequest.getIdleTimeout(), TimeUnit.MILLISECONDS)