if (isUpgradeRequest(httpTxCtx.getAsyncHandler()) && isWSRequest(httpTxCtx.requestUri)) { httpTxCtx.isWSRequest = true; convertToUpgradeRequest(httpTxCtx); return establishConnectTunnel(proxy, httpTxCtx, uri, ctx); final PayloadGenerator payloadGenerator = isPayloadAllowed(method) ? PayloadGenFactory.getPayloadGenerator(ahcRequest) : null; setupKeepAlive(requestPacket, connection); copyHeaders(ahcRequest, requestPacket); addCookies(ahcRequest, requestPacket); addHostHeaderIfNeeded(ahcRequest, uri, requestPacket); addServiceHeaders(requestPacket); addAcceptHeaders(requestPacket); final Realm realm = getRealm(ahcRequest); addAuthorizationHeader(ahcRequest, requestPacket, realm, uri, proxy, isUsedConnection); addProxyHeaders(ahcRequest, requestPacket, realm, proxy, isUsedConnection, false); final boolean isFullySent = sendRequest(httpTxCtx, ctx, requestPacket, wrapWithExpectHandlerIfNeeded(payloadGenerator, requestPacket)); if (isFullySent) {
private void addCookies(final Request request, final HttpRequestPacket requestPacket) { final Collection<Cookie> cookies = request.getCookies(); if (MiscUtils.isNonEmpty(cookies)) { StringBuilder sb = new StringBuilder(128); org.glassfish.grizzly.http.Cookie[] gCookies = new org.glassfish.grizzly.http.Cookie[cookies.size()]; convertCookies(cookies, gCookies); CookieSerializerUtils.serializeClientCookies(sb, gCookies); requestPacket.addHeader(Header.Cookie, sb.toString()); } }
private boolean establishConnectTunnel(final ProxyServer proxy, final HttpTransactionContext httpCtx, final Uri uri, final FilterChainContext ctx) throws IOException { final Connection connection = ctx.getConnection(); final HttpRequestPacket requestPacket = HttpRequestPacket.builder() .protocol(Protocol.HTTP_1_0) .method(Method.CONNECT) .uri(AsyncHttpProviderUtils.getAuthority(uri)) .build(); setupKeepAlive(requestPacket, connection); httpCtx.establishingTunnel = true; final Request request = httpCtx.getAhcRequest(); addHostHeaderIfNeeded(request, uri, requestPacket); addServiceHeaders(requestPacket); final Realm realm = getRealm(request); addAuthorizationHeader(request, requestPacket, realm, uri, proxy, false); addProxyHeaders(request, requestPacket, realm, proxy, false, true); // turn off SSL, because CONNECT will be sent in plain mode ctx.notifyDownstream(new SSLSwitchingEvent(connection, false)); return sendRequest(httpCtx, ctx, requestPacket, null); }
AhcEventFilter(this, (Integer) providerConfig.getProperty(MAX_HTTP_PACKET_HEADER_SIZE)); final AsyncHttpClientFilter clientFilter = new AsyncHttpClientFilter(this); ContentEncoding[] encodings = eventFilter.getContentEncodings(); if (encodings.length > 0) {
private boolean establishConnectTunnel(final ProxyServer proxy, final HttpTransactionContext httpCtx, final Uri uri, final FilterChainContext ctx) throws IOException { final Connection connection = ctx.getConnection(); final HttpRequestPacket requestPacket = HttpRequestPacket.builder() .protocol(Protocol.HTTP_1_0) .method(Method.CONNECT) .uri(AsyncHttpProviderUtils.getAuthority(uri)) .build(); setupKeepAlive(requestPacket, connection); httpCtx.establishingTunnel = true; final Request request = httpCtx.getAhcRequest(); addHostHeaderIfNeeded(request, uri, requestPacket); addServiceHeaders(requestPacket); final Realm realm = getRealm(request); addProxyHeaders(request, requestPacket, realm, proxy, false, true); // turn off SSL, because CONNECT will be sent in plain mode ctx.notifyDownstream(new SSLSwitchingEvent(connection, false)); return sendRequest(httpCtx, ctx, requestPacket, null); }
AhcEventFilter(this, (Integer) providerConfig.getProperty(MAX_HTTP_PACKET_HEADER_SIZE)); final AsyncHttpClientFilter clientFilter = new AsyncHttpClientFilter(this); ContentEncoding[] encodings = eventFilter.getContentEncodings(); if (encodings.length > 0) {
if (isUpgradeRequest(httpTxCtx.getAsyncHandler()) && isWSRequest(httpTxCtx.requestUri)) { httpTxCtx.isWSRequest = true; convertToUpgradeRequest(httpTxCtx); return establishConnectTunnel(proxy, httpTxCtx, uri, ctx); final PayloadGenerator payloadGenerator = isPayloadAllowed(method) ? PayloadGenFactory.getPayloadGenerator(ahcRequest) : null; setupKeepAlive(requestPacket, connection); copyHeaders(ahcRequest, requestPacket); addCookies(ahcRequest, requestPacket); addHostHeaderIfNeeded(ahcRequest, uri, requestPacket); addServiceHeaders(requestPacket); addAcceptHeaders(requestPacket); final Realm realm = getRealm(ahcRequest); addAuthorizationHeader(ahcRequest, requestPacket, realm, uri, proxy, isUsedConnection); addProxyHeaders(ahcRequest, requestPacket, realm, proxy, isUsedConnection, false); final boolean isFullySent = sendRequest(httpTxCtx, ctx, requestPacket, wrapWithExpectHandlerIfNeeded(payloadGenerator, requestPacket)); if (isFullySent) {
private boolean establishConnectTunnel(final ProxyServer proxy, final HttpTransactionContext httpCtx, final Uri uri, final FilterChainContext ctx) throws IOException { final Connection connection = ctx.getConnection(); final HttpRequestPacket requestPacket = HttpRequestPacket.builder() .protocol(Protocol.HTTP_1_0) .method(Method.CONNECT) .uri(AsyncHttpProviderUtils.getAuthority(uri)) .build(); setupKeepAlive(requestPacket, connection); httpCtx.establishingTunnel = true; final Request request = httpCtx.getAhcRequest(); addHostHeaderIfNeeded(request, uri, requestPacket); addServiceHeaders(requestPacket); final Realm realm = getRealm(request); addProxyHeaders(request, requestPacket, realm, proxy, false, true); // turn off SSL, because CONNECT will be sent in plain mode ctx.notifyDownstream(new SSLSwitchingEvent(connection, false)); return sendRequest(httpCtx, ctx, requestPacket, null); }
private void addCookies(final Request request, final HttpRequestPacket requestPacket) { final Collection<Cookie> cookies = request.getCookies(); if (MiscUtils.isNonEmpty(cookies)) { StringBuilder sb = new StringBuilder(128); org.glassfish.grizzly.http.Cookie[] gCookies = new org.glassfish.grizzly.http.Cookie[cookies.size()]; convertCookies(cookies, gCookies); CookieSerializerUtils.serializeClientCookies(sb, gCookies); requestPacket.addHeader(Header.Cookie, sb.toString()); } }
AhcEventFilter(this, (Integer) providerConfig.getProperty(MAX_HTTP_PACKET_HEADER_SIZE)); final AsyncHttpClientFilter clientFilter = new AsyncHttpClientFilter(this); ContentEncoding[] encodings = eventFilter.getContentEncodings(); if (encodings.length > 0) {
if (isUpgradeRequest(httpTxCtx.getAsyncHandler()) && isWSRequest(httpTxCtx.requestUri)) { httpTxCtx.isWSRequest = true; convertToUpgradeRequest(httpTxCtx); return establishConnectTunnel(proxy, httpTxCtx, uri, ctx); final PayloadGenerator payloadGenerator = isPayloadAllowed(method) ? PayloadGenFactory.getPayloadGenerator(ahcRequest) : null; setupKeepAlive(requestPacket, connection); copyHeaders(ahcRequest, requestPacket); addCookies(ahcRequest, requestPacket); addHostHeaderIfNeeded(ahcRequest, uri, requestPacket); addServiceHeaders(requestPacket); addAcceptHeaders(requestPacket); final Realm realm = getRealm(ahcRequest); addAuthorizationHeader(ahcRequest, requestPacket, realm, uri, proxy, isUsedConnection); addProxyHeaders(ahcRequest, requestPacket, realm, proxy, isUsedConnection, false); final boolean isFullySent = sendRequest(httpTxCtx, ctx, requestPacket, wrapWithExpectHandlerIfNeeded(payloadGenerator, requestPacket)); if (isFullySent) {
private void addCookies(final Request request, final HttpRequestPacket requestPacket) { final Collection<Cookie> cookies = request.getCookies(); if (MiscUtils.isNonEmpty(cookies)) { StringBuilder sb = new StringBuilder(128); org.glassfish.grizzly.http.Cookie[] gCookies = new org.glassfish.grizzly.http.Cookie[cookies.size()]; convertCookies(cookies, gCookies); CookieSerializerUtils.serializeClientCookies(sb, gCookies); requestPacket.addHeader(Header.Cookie, sb.toString()); } }