Skip to content

Commit 4393106

Browse files
author
oleksiys
committed
[master] fix issue AsyncHttpClient#608
AsyncHttpClient#608 "Grizzly provider can't deal with wss + proxy"
1 parent f171c9a commit 4393106

File tree

4 files changed

+24
-19
lines changed

4 files changed

+24
-19
lines changed

providers/grizzly/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
</description>
1515

1616
<properties>
17-
<grizzly.version>2.3.14</grizzly.version>
17+
<grizzly.version>2.3.16</grizzly.version>
1818
<grizzly.npn.version>1.1</grizzly.npn.version>
1919
</properties>
2020

providers/grizzly/src/main/java/org/asynchttpclient/providers/grizzly/filters/AsyncHttpClientFilter.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -469,10 +469,13 @@ private static boolean isWSRequest(final UriComponents requestUri) {
469469

470470
private static void convertToUpgradeRequest(final HttpTxContext ctx) {
471471

472-
UriComponents originalUri = ctx.getRequestUri();
473-
String newScheme = originalUri.getScheme().equalsIgnoreCase("https") ? "wss" : "ws";
474-
ctx.setWsRequestURI(originalUri);
475-
ctx.setRequestUri(originalUri.withNewScheme(newScheme));
472+
final UriComponents requestUri = ctx.getRequestUri();
473+
474+
ctx.setWsRequestURI(requestUri);
475+
ctx.setRequestUri(requestUri.withNewScheme(
476+
"ws".equals(requestUri.getScheme())
477+
? "http"
478+
: "https"));
476479
}
477480

478481
private void addGeneralHeaders(final Request request, final HttpRequestPacket requestPacket) {

providers/grizzly/src/main/java/org/asynchttpclient/providers/grizzly/filters/ProxyFilter.java

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2013 Sonatype, Inc. All rights reserved.
2+
* Copyright (c) 2013-2014 Sonatype, Inc. All rights reserved.
33
*
44
* This program is licensed to you under the Apache License Version 2.0,
55
* and you may not use this file except in compliance with the Apache License Version 2.0.
@@ -29,6 +29,7 @@
2929
import org.glassfish.grizzly.http.util.Header;
3030

3131
import java.io.IOException;
32+
import org.glassfish.grizzly.http.HttpPacket;
3233

3334
/**
3435
* This Filter will be placed in the FilterChain when a request is being
@@ -56,15 +57,21 @@ public ProxyFilter(final ProxyServer proxyServer, final AsyncHttpClientConfig co
5657

5758
@Override
5859
public NextAction handleWrite(FilterChainContext ctx) throws IOException {
59-
org.glassfish.grizzly.http.HttpContent content = ctx.getMessage();
60-
HttpRequestPacket request = (HttpRequestPacket) content.getHttpHeader();
61-
HttpTxContext context = HttpTxContext.get(ctx);
62-
assert (context != null);
63-
Request req = context.getRequest();
64-
if (!secure) {
65-
request.setRequestURI(req.getURI().toUrl());
60+
final Object msg = ctx.getMessage();
61+
if (HttpPacket.isHttp(msg)) {
62+
HttpPacket httpPacket = (HttpPacket) msg;
63+
final HttpRequestPacket request = (HttpRequestPacket) httpPacket.getHttpHeader();
64+
if (!request.isCommitted()) {
65+
HttpTxContext context = HttpTxContext.get(ctx);
66+
assert (context != null);
67+
Request req = context.getRequest();
68+
if (!secure) {
69+
request.setRequestURI(req.getURI().toUrl());
70+
}
71+
addProxyHeaders(getRealm(req), request);
72+
}
6673
}
67-
addProxyHeaders(getRealm(req), request);
74+
6875
return ctx.getInvokeAction();
6976
}
7077

providers/grizzly/src/test/java/org/asynchttpclient/providers/grizzly/websocket/GrizzlyProxyTunnellingTest.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,4 @@ public class GrizzlyProxyTunnellingTest extends ProxyTunnellingTest {
2525
public AsyncHttpClient getAsyncHttpClient(AsyncHttpClientConfig config) {
2626
return GrizzlyProviderUtil.grizzlyProvider(config);
2727
}
28-
29-
@Test(timeOut = 60000, enabled = false)
30-
public void echoText() throws Exception {
31-
// FIXME
32-
}
3328
}

0 commit comments

Comments
 (0)