Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[jetty-users] Jetty client v8.0.4 - problem opening HTTPS connection through HTTP proxy server

Hello all,

I'm having problems using jetty-client 8.0.4.v20111024 to open a HTTPS
connection through an Apache proxy server, using HTTP CONNECT.

The Jetty client appears to open up new connections to the Apache
proxy then close them before any data has been returned, repeatedly.
I'm seeing many HTTP CONNECT requests being generated a few
milliseconds apart. The Apache proxy opens new connections to the real
end server and waits for responses, but these responses never make it
back to the Jetty client.

Simple test code attached. Trimmed tcpdump output captured from the
proxy server also attached.

I'm using Java SE 1.6.0_29 on RHEL 5.5 Linux.

Using the commandline 'curl' client through this proxy server works correctly.

This may be related to Bug 298502 - Https exchange through an http
proxy. This bug was fixed a few months ago, but I'm still seeing an
issue that seems similar.

Thanks for any help you can offer.

Gil

Test code:

        SslContextFactory factory = new SslContextFactory();
        ...
        HttpClient client = new HttpClient(factory);
        client.setProxy(new Address( "192.168.201.6", 9122 ));
        client.start();

        ContentExchange exchange = new ContentExchange();
        exchange.setMethod("GET");
        exchange.setURL("https://192.168.201.4:8443/";);
        client.send(exchange);
        exchange.waitForDone();

Tcpdump:

16:40:57.507852 IP 192.168.202.3.49006 > 192.168.201.6.9122: P
1:122(121) ack 1 win 46 <nop,nop,timestamp 3391858150 440115033>
E...\.@.?............n#.?M.................
.+...;.YCONNECT 192.168.201.4:8443 HTTP/1.1
Host: 192.168.201.4:8443
Proxy-Connection: keep-alive
User-Agent: Jetty-Client

16:40:57.507867 IP 192.168.201.6.9122 > 192.168.202.3.49006: . ack 122
win 46 <nop,nop,timestamp 440115069 3391858150>
E..42.@.@...........#..n....?M.L.....d.....
.;.}.+..
16:40:57.510653 IP 192.168.201.6.58887 > 192.168.201.4.8443: S
3534877258:3534877258(0) win 5840 <mss 1460,sackOK,timestamp 440115070
0,nop,wscale 7>
E..<m4@.@..+.......... ....J...................
.;.~........
16:40:57.512062 IP 192.168.201.4.8443 > 192.168.201.6.58887: S
873236234:873236234(0) ack 3534877259 win 22104 <mss
1460,nop,nop,timestamp 2272020 440115070>
E..8.}..@........... ...4..
...K..VX	C.........
."...;.~
16:40:57.512074 IP 192.168.201.6.58887 > 192.168.201.4.8443: . ack 1
win 5840 <nop,nop,timestamp 440115074 2272020>
E..4m5@.@..2.......... ....K4.......`......
.;..."..

16:40:57.512137 IP 192.168.201.6.9122 > 192.168.202.3.49006: P
1:38(37) ack 122 win 46 <nop,nop,timestamp 440115074 3391858150>
E..Y2.@.@...........#..n....?M.L...........
.;...+..HTTP/1.0 200 Connection Established

16:40:57.512145 IP 192.168.201.6.9122 > 192.168.202.3.49006: P
38:76(38) ack 122 win 46 <nop,nop,timestamp 440115074 3391858150>
E..Z2.@.@...........#..n....?M.L...........
.;...+..Proxy-agent: Apache/2.2.3 (CentOS)

... a few additional packet exchanges between the two servers here ...

16:40:57.518032 IP 192.168.202.3.49007 > 192.168.201.6.9122: P
1:122(121) ack 1 win 46 <nop,nop,timestamp 3391858160 440115076>
E...%j@.?............o#.?M....u.....a......
.+...;..CONNECT 192.168.201.4:8443 HTTP/1.1
Host: 192.168.201.4:8443
Proxy-Connection: keep-alive
User-Agent: Jetty-Client


16:40:57.518042 IP 192.168.201.6.9122 > 192.168.202.3.49007: . ack 122
win 46 <nop,nop,timestamp 440115080 3391858160>
E..4..@.@.<g........#..o..u.?M......LX.....
.;...+..
16:40:57.518212 IP 192.168.201.6.58888 > 192.168.201.4.8443: S
3534075867:3534075867(0) win 5840 <mss 1460,sackOK,timestamp 440115080
0,nop,wscale 7>
E..<(S@.@............. ........................
.;..........
16:40:57.519692 IP 192.168.201.4.8443 > 192.168.201.6.58888: S
2941708955:2941708955(0) ack 3534075868 win 22104 <mss
1460,nop,nop,timestamp 2272020 440115080>
E..8....@........... ....V........VXd..........
."...;..
16:40:57.519700 IP 192.168.201.6.58888 > 192.168.201.4.8443: . ack 1
win 5840 <nop,nop,timestamp 440115081 2272020>
E..4(T@.@............. ......V.............
.;..."..
16:40:57.519717 IP 192.168.201.6.9122 > 192.168.202.3.49007: P
1:38(37) ack 122 win 46 <nop,nop,timestamp 440115081 3391858160>
E..Y..@.@.<A........#..o..u.?M......l......
.;...+..HTTP/1.0 200 Connection Established

16:40:57.519728 IP 192.168.201.6.9122 > 192.168.202.3.49007: P
38:76(38) ack 122 win 46 <nop,nop,timestamp 440115081 3391858160>
E..Z..@.@.<?........#..o..u.?M......w......
.;...+..Proxy-agent: Apache/2.2.3 (CentOS)

'curl' request:

16:56:23.123858 IP 192.168.202.3.37417 > 192.168.201.6.9122: P
1:201(200) ack 1 win 46 <nop,nop,timestamp 3392783764 441040671>
}.K....0.............)#.yC..
.9...I..CONNECT 192.168.201.4:8443 HTTP/1.0
Host: 192.168.201.4:8443
User-Agent: curl/7.15.5 (x86_64-redhat-linux-gnu) libcurl/7.15.5
OpenSSL/0.9.8b zlib/1.2.3 libidn/0.6.5
Proxy-Connection: Keep-Alive


16:56:23.123874 IP 192.168.201.6.9122 > 192.168.202.3.37417: . ack 201
win 54 <nop,nop,timestamp 441040671 3392783764>
}.KyC.....6,W.......#..)
.I...9..
16:56:23.124141 IP 192.168.201.6.60481 > 192.168.201.4.8443: S
226631487:226631487(0) win 5840 <mss 1460,sackOK,timestamp 441040671
0,nop,wscale 7>
..?........?.........A .
m.........
.I..........
16:56:23.125682 IP 192.168.201.4.8443 > 192.168.201.6.60481: S
1783422927:1783422927(0) ack 226631488 win 27016 <mss
1460,nop,nop,timestamp 2280835 441040671>
..@..i.............. ..AjL..
."...I..
16:56:23.125691 IP 192.168.201.6.60481 > 192.168.201.4.8443: . ack 1
win 5840 <nop,nop,timestamp 441040673 2280835>
..@jL......!d........A .
.I.!."..
16:56:23.125748 IP 192.168.201.6.9122 > 192.168.202.3.37417: P
1:38(37) ack 201 win 54 <nop,nop,timestamp 441040673 3392783764>
}.KyC.....6L}.......#..)
.I.!.9..HTTP/1.0 200 Connection Established

16:56:23.125757 IP 192.168.201.6.9122 > 192.168.202.3.37417: P
38:76(38) ack 201 win 54 <nop,nop,timestamp 441040673 3392783764>
}.pyC.....6W........#..)
.I.!.9..Proxy-agent: Apache/2.2.3 (CentOS)


Back to the top