Re: java client and ntlm proxy
Re: java client and ntlm proxy
- Subject: Re: java client and ntlm proxy
- From: Aurélien Minet <email@hidden>
- Date: Tue, 15 Mar 2011 00:22:23 +0100
On 03/14/2011 09:32 AM, Pierre Gilquin wrote:
Merci Aurélien.
De rien Pierre
the methode createSocket in the class extending EOHTTPChanel have to return a socket
I think Apache HttpClient would help to create one and handle proxy stuff
see http://svn.apache.org/repos/asf/httpcomponents/oac.hc3x/branches/HTTPCLIENT_3_0_BRANCH/src/examples/ProxyTunnelDemo.java
after Socket socket = response.getSocket();
you may have to add
socket.setTcpNoDelay(true);
socket.setSoTimeout(2147483647);
I also found that in NSSocketUtilities the creation of the socket was done in a internal class SocketThread which
extends Thread
Aurélien
ps: cntlm would be necessary if an NTLM authentication is necessary , if not Java Client only have to connect to the
proxy for accessing the application which behind it.
I have already try to extend EOHTTPChannel. Until now without success ...
It's why i try to use cntlm.
My last attempt is to use cntlm tunneling :
cntlm.exe -c cntlm.ini -v
cntlm: New tunnel from 127.0.0.1:11443 to host.domain.tld:80
In this case the launch don't use any http.proxy but directly the port 11443 on localhost:
java MyClassUsingEOClientApplicationSupport -applicationURL http://localhost:11443/cgi-bin/WebObjects/MyAppli.woa
I dont understand why this is not working ...
Thanks for any idea
Pierre
----- Original Message -----
From: Aurélien Minet
To: email@hidden <mailto:email@hidden> ; WebObjects (Group)
Sent: Sunday, March 13, 2011 10:56 PM
Subject: Re: java client and ntlm proxy
Hi
Yes the socket is open directly, in fact stuff behind EOHTTPChannel (createSocket) doesn't take in account http.proxy*
args cause finally use java.net.Socket and not java.net.URL, so Java Client can't connect to the application trough any
HTTP proxy (NTML or not).
A solution could be to override NSSocketUtilities.getSocketWithTimeout or to extend
com.webobjects.eodistribution.client.EOHTTPChannel with a class having a methode createSocket which return a Socket.
We have got the same problem for Java Client connecting to the application using an https URL. A colleague make a POC
with a class which extends EOHTTPChannel and use javax.net.ssl
Aurelien
ps : for command line launching
java -classpath "jar list" com.webobjects.eoapplication.client.EOClientApplicationSupport
-applicationURL http://host.domain.tld/cgi-bin/WebObjects/App.woa [other arguments]
(prefer a .jnlp file for deployment)
On 03/08/2011 09:43 AM, Pierre Gilquin wrote:
> Hi David,
>
> Starting the application with JWS or at command line gives the same result.
> I guess that the socket is open directly (port 80) without going thru the proxy and that's why I get a timeout error.
>
> I dont get your idea, what can you check in the jnlp file ?
> Thanks
>
> Pierre
>
>
>
> ----- Original Message -----
> *From:* David Avendasora <mailto:email@hidden>
> *To:* Pierre Gilquin <mailto:email@hidden>
> *Cc:* email@hidden <mailto:email@hidden>
<mailto:email@hidden>
> *Sent:* Monday, March 07, 2011 8:26 PM
> *Subject:* Re: java client and ntlm proxy
>
> Hi Pierre,
>
> Are you launching the application from a link that downloads a .jnlp file from the server? If so, look at it's
> contents to be sure it is using the ports you think it is.
>
> Dave
>
>
> On Mar 7, 2011, at 11:52 AM, Pierre Gilquin wrote:
>
>> Hi all,
>>
>> I am trying to use a java client inside a entreprise network using an ntml proxy with authentification for
>> accessing the outside world.
>>
>> Seems that java cannot pass that kind of proxy. At least, I was not able to do it.
>> So I try to use cntlm http://cntlm.sourceforge.net/ <x-msg://292/> before starting the java client :
>>
>> >cntlm.exe -c cntlm.ini -v
>> cntlm: Proxy listening on 127.0.0.1:3128
>> cntlm: Resolving proxy TheBorringProxy ...
>> cntlm: Workstation name used: localhost
>> cntlm: Using following NTLM hashes: NTLMv2(1) NT(0) LM(0)
>> cntlm: PID 980: Cntlm ready, staying in the foreground
>>
>> Then I start my java client :
>> java -Dhttp.proxySet=true -Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=3128 MyClass
>> -applicationURL http://www.externaldomain.com/cgi-bin/WebObjects/MyAppli.woa <x-msg://292/>
>>
>> But not better, the java client cannot create the socket :
>> com.webobjects.foundation.NSForwardException for java.io.IOException: Timed out trying to create Socket
>> at com.webobjects.foundation.NSSocketUtilities._getSocketWithTimeout(NSSocketUtilities.java:145)
>> at com.webobjects.foundation.NSSocketUtilities.getSocketWithTimeout(NSSocketUtilities.java:100)
>> at com.webobjects.foundation.NSSocketUtilities.getSocketWithTimeout(NSSocketUtilities.java:58)
>> at com.webobjects.eodistribution.client.EOHTTPChannel.createSocket(EOHTTPChannel.java:401)
>>
>> Am I missing something ? May be I am wrong about the way i start my java client ?
>>
>> Thanks for any idea.
>>
>> Pierre
>
>
>
> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Webobjects-dev mailing list (email@hidden <mailto:email@hidden>)
> Help/Unsubscribe/Update your Subscription:
>
> This email sent to email@hidden <mailto:email@hidden>
_______________________________________________
WebObjects-dev mailing list
email@hidden <mailto:email@hidden>
http://www.omnigroup.com/mailman/listinfo/webobjects-dev
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden