19
19
import com .ning .http .client .RequestBuilder ;
20
20
import com .ning .http .client .Response ;
21
21
import com .ning .http .client .SimpleAsyncHttpClient ;
22
+ import org .eclipse .jetty .server .Connector ;
23
+ import org .eclipse .jetty .server .Server ;
22
24
import org .eclipse .jetty .server .handler .AbstractHandler ;
23
25
import org .eclipse .jetty .server .handler .ProxyHandler ;
26
+ import org .eclipse .jetty .server .nio .SelectChannelConnector ;
27
+ import org .eclipse .jetty .server .ssl .SslSocketConnector ;
28
+ import org .testng .annotations .BeforeClass ;
24
29
import org .testng .annotations .Test ;
25
30
31
+ import java .io .File ;
26
32
import java .io .IOException ;
33
+ import java .net .URL ;
27
34
import java .util .concurrent .ExecutionException ;
28
35
import java .util .concurrent .Future ;
29
36
import java .util .concurrent .TimeoutException ;
36
43
*/
37
44
public abstract class ProxyyTunnellingTest extends AbstractBasicTest {
38
45
46
+ private Server server2 ;
47
+
39
48
public AbstractHandler configureHandler () throws Exception {
40
49
ProxyHandler proxy = new ProxyHandler ();
41
50
return proxy ;
42
51
}
43
52
53
+ @ BeforeClass (alwaysRun = true )
54
+ public void setUpGlobal () throws Exception {
55
+ server = new Server ();
56
+ server2 = new Server ();
57
+
58
+ port1 = findFreePort ();
59
+ port2 = findFreePort ();
60
+
61
+ Connector listener = new SelectChannelConnector ();
62
+
63
+ listener .setHost ("127.0.0.1" );
64
+ listener .setPort (port1 );
65
+
66
+ server .addConnector (listener );
67
+
68
+ SslSocketConnector connector = new SslSocketConnector ();
69
+ connector .setHost ("127.0.0.1" );
70
+ connector .setPort (port2 );
71
+
72
+ ClassLoader cl = getClass ().getClassLoader ();
73
+ URL keystoreUrl = cl .getResource ("ssltest-keystore.jks" );
74
+ String keyStoreFile = new File (keystoreUrl .toURI ()).getAbsolutePath ();
75
+ connector .setKeystore (keyStoreFile );
76
+ connector .setKeyPassword ("changeit" );
77
+ connector .setKeystoreType ("JKS" );
78
+
79
+ server2 .addConnector (connector );
80
+
81
+ server .setHandler (configureHandler ());
82
+ server .start ();
83
+
84
+ server2 .setHandler (new EchoHandler ());
85
+ server2 .start ();
86
+ log .info ("Local HTTP server started successfully" );
87
+ }
88
+
44
89
@ Test (groups = {"online" , "default_provider" })
45
90
public void testRequestProxy () throws IOException , InterruptedException , ExecutionException , TimeoutException {
46
91
AsyncHttpClientConfig .Builder b = new AsyncHttpClientConfig .Builder ();
@@ -51,7 +96,7 @@ public void testRequestProxy() throws IOException, InterruptedException, Executi
51
96
AsyncHttpClientConfig config = b .build ();
52
97
AsyncHttpClient asyncHttpClient = new AsyncHttpClient (config );
53
98
54
- RequestBuilder rb = new RequestBuilder ("GET" ).setProxyServer (ps ).setUrl ("https://twitpic.com/" );
99
+ RequestBuilder rb = new RequestBuilder ("GET" ).setProxyServer (ps ).setUrl (getTargetUrl2 () );
55
100
Future <Response > responseFuture = asyncHttpClient .executeRequest (rb .build (), new AsyncCompletionHandlerBase () {
56
101
57
102
public void onThrowable (Throwable t ) {
@@ -66,7 +111,7 @@ public Response onCompleted(Response response) throws Exception {
66
111
});
67
112
Response r = responseFuture .get ();
68
113
assertEquals (r .getStatusCode (), 200 );
69
- assertEquals (r .getHeader ("server" ), "nginx " );
114
+ assertEquals (r .getHeader ("server" ), "Jetty(7.1.4.v20100610) " );
70
115
71
116
asyncHttpClient .close ();
72
117
}
@@ -82,7 +127,7 @@ public void testConfigProxy() throws IOException, InterruptedException, Executio
82
127
AsyncHttpClientConfig config = b .build ();
83
128
AsyncHttpClient asyncHttpClient = new AsyncHttpClient (config );
84
129
85
- RequestBuilder rb = new RequestBuilder ("GET" ).setUrl ("https://twitpic.com/" );
130
+ RequestBuilder rb = new RequestBuilder ("GET" ).setUrl (getTargetUrl2 () );
86
131
Future <Response > responseFuture = asyncHttpClient .executeRequest (rb .build (), new AsyncCompletionHandlerBase () {
87
132
88
133
public void onThrowable (Throwable t ) {
@@ -97,7 +142,7 @@ public Response onCompleted(Response response) throws Exception {
97
142
});
98
143
Response r = responseFuture .get ();
99
144
assertEquals (r .getStatusCode (), 200 );
100
- assertEquals (r .getHeader ("server" ), "nginx " );
145
+ assertEquals (r .getHeader ("server" ), "Jetty(7.1.4.v20100610) " );
101
146
102
147
asyncHttpClient .close ();
103
148
}
@@ -110,14 +155,14 @@ public void testSimpleAHCConfigProxy() throws IOException, InterruptedException,
110
155
.setProxyHost ("127.0.0.1" )
111
156
.setProxyPort (port1 )
112
157
.setFollowRedirects (true )
113
- .setUrl ("https://twitpic.com/" )
158
+ .setUrl (getTargetUrl2 () )
114
159
.setHeader ("Content-Type" , "text/html" ).build ();
115
160
116
161
StringBuffer s = new StringBuffer ();
117
162
Response r = client .get ().get ();
118
163
119
164
assertEquals (r .getStatusCode (), 200 );
120
- assertEquals (r .getHeader ("server" ), "nginx " );
165
+ assertEquals (r .getHeader ("server" ), "Jetty(7.1.4.v20100610) " );
121
166
122
167
client .close ();
123
168
}
0 commit comments