Skip to content

Commit 86df161

Browse files
committed
Always switch SSL modes if necessary.
1 parent a0788dc commit 86df161

File tree

1 file changed

+34
-4
lines changed

1 file changed

+34
-4
lines changed

src/main/java/com/ning/http/client/providers/grizzly/GrizzlyAsyncHttpProvider.java

Lines changed: 34 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515

1616
import static com.ning.http.util.MiscUtil.isNonEmpty;
1717

18+
import com.ning.http.client.AsyncHttpClient;
1819
import com.ning.org.jboss.netty.handler.codec.http.CookieDecoder;
1920
import com.ning.http.client.AsyncHandler;
2021
import com.ning.http.client.AsyncHttpClientConfig;
@@ -127,6 +128,7 @@
127128
import java.net.URISyntaxException;
128129
import java.net.URLEncoder;
129130
import java.security.NoSuchAlgorithmException;
131+
import java.security.SecureRandom;
130132
import java.util.Collection;
131133
import java.util.HashMap;
132134
import java.util.List;
@@ -889,9 +891,9 @@ private boolean sendAsGrizzlyRequest(final Request request,
889891
requestPacket = builder.build();
890892
}
891893
requestPacket.setSecure(secure);
892-
if (secure) {
893-
ctx.notifyDownstream(new SwitchingSSLFilter.SSLSwitchingEvent(true, ctx.getConnection()));
894-
}
894+
895+
ctx.notifyDownstream(new SwitchingSSLFilter.SSLSwitchingEvent(secure, ctx.getConnection()));
896+
895897
if (!useProxy && !httpCtx.isWSRequest) {
896898
addQueryString(request, requestPacket);
897899
}
@@ -2839,7 +2841,35 @@ public int hashCode() {
28392841
return result;
28402842
}
28412843
} // END AHCWebSocketListenerAdapter
2842-
2844+
2845+
2846+
public static void main(String[] args) {
2847+
SecureRandom secureRandom = new SecureRandom();
2848+
SSLContext sslContext = null;
2849+
try {
2850+
sslContext = SSLContext.getInstance("TLS");
2851+
sslContext.init(null, null, secureRandom);
2852+
} catch (Exception e) {
2853+
e.printStackTrace();
2854+
}
2855+
AsyncHttpClientConfig config = new AsyncHttpClientConfig.Builder()
2856+
.setConnectionTimeoutInMs(5000)
2857+
.setSSLContext(sslContext).build();
2858+
AsyncHttpClient client = new AsyncHttpClient(new GrizzlyAsyncHttpProvider(config), config);
2859+
try {
2860+
long start = System.currentTimeMillis();
2861+
try {
2862+
client.executeRequest(client.prepareGet("http://www.google.com").build()).get();
2863+
} catch (InterruptedException e) {
2864+
e.printStackTrace();
2865+
} catch (ExecutionException e) {
2866+
e.printStackTrace();
2867+
}
2868+
System.out.println("COMPLETE: " + (System.currentTimeMillis() - start) + "ms");
2869+
} catch (IOException e) {
2870+
e.printStackTrace();
2871+
}
2872+
}
28432873
}
28442874

28452875

0 commit comments

Comments
 (0)