TCP tunneling through authenticating HTTP proxy
Chris Hegarty
chris.hegarty at oracle.com
Thu Oct 25 08:22:46 PDT 2012
Wow, I forgot just how far we got with this.
Let me refresh myself with this work and I'll get to the list shortly.
-Chris.
On 25/10/2012 16:14, Vasiliy Baranov wrote:
> Hi Damjan,
>
> This looks like exactly what I need. Thank you for sharing!
>
> Now perhaps the question is whether this feature can be or already is
> included in the JDK or I am on my own to hack something together based
> on this patch.
>
> Thank you,
> -- Vasiliy
>
> On 25.10.2012 18:29, Damjan Jovanovic wrote:
>> Guys, there was a patch for this feature (use of HTTP proxies with
>> CONNECT request in java.net.Socket) floating around in February/March
>> 2010, the latest version of which is at
>> http://mail.openjdk.java.net/pipermail/net-dev/2010-March/001642.html
>>
>> I helped write it so let me know if you need any help.
>>
>> Regards
>> Damjan
>>
>> On Thu, Oct 25, 2012 at 3:53 PM, Michael McMahon
>> <michael.x.mcmahon at oracle.com> wrote:
>>> There is a JSR for websockets, and they are doing a reference
>>> implementation
>>> based on JDK 7 I believe.
>>>
>>> As regards TCP sockets via Http proxies, JDK doesn't support that.
>>> The closest thing is probably SOCKS. Can you use that?
>>>
>>> - Michael
>>>
>>>
>>> On 25/10/12 14:32, Vasiliy Baranov wrote:
>>>>
>>>> Greetings,
>>>>
>>>> And apologies if I am sending this to the wrong list...
>>>>
>>>> Suppose I want my code to talk to a TCP server via an HTTP proxy, by
>>>> setting up a proxy tunnel using the CONNECT method. By any chance,
>>>> is there
>>>> a mechanism in the Java SE networking stack that would allow me to
>>>> do so? A
>>>> mechanism that would handle proxy selection, tunneling, and, most
>>>> importantly, authentication identically to HttpURLconnection?
>>>>
>>>> If there is no such mechanism in JDK 7, could such a mechanism be
>>>> added in
>>>> JDK 8?
>>>>
>>>> FWIW, proxy selection and tunneling through non-authenticating proxy is
>>>> not too difficult to implement with ProxySelector and plain Sockets,
>>>> using
>>>> sun.net.www.protocol.http.HttpURLConnection.plainConnect as a
>>>> reference. My
>>>> code does so already.
>>>>
>>>> Proxy authentication, however, is a totally different story. If I parse
>>>> JDK code correctly, client code that does not use HttpURLConnection is
>>>> unlikely to be able to integrate nicely with the AuthCacheValue
>>>> cache or
>>>> handle complex authentication schemes, unless it chooses to depend
>>>> on some
>>>> JDK-internal APIs and duplicate great amount of JDK code. My code
>>>> probably
>>>> cannot afford the latter two, that is why I am asking for help here
>>>> on this
>>>> list. Since I have proxy selection and non-authenticated tunneling
>>>> already
>>>> implemented, in my case it would actually be sufficient to only have
>>>> some
>>>> JDK support for proper integration with the AuthCacheValue cache and
>>>> the
>>>> standard authentication schemes. However, I gather a more universal
>>>> HTTP
>>>> tunneling facility, something that works like HttpURLConnection but
>>>> skips
>>>> the final HTTP handshake with the end server, is likely to be a cleaner
>>>> solution.
>>>>
>>>> If it matters, I am asking this in the context of adding support for
>>>> WebSockets to JavaFX WebView:
>>>> http://javafx-jira.kenai.com/browse/RT-14947
>>>>
>>>> Thank you in advance,
>>>> -- Vasiliy
>>>
>>>
>
More information about the net-dev
mailing list