[jboss-user] [Remoting] - SSL calls thru a proxy with authentication?

carlofr do-not-reply at jboss.com
Thu Apr 5 10:09:43 EDT 2007


Hi!
Have to pass a bluecoat proxy with authentication to make client SSL calls from my application to an external webservice. Running solaris, jdk5 and jboss_4.0.5.GA.

Version 1.4.3.GA accoding to the jboss-remoting.jar

When i read the user documentation for remoting 1.4.0 this seamed like a simple thing. Providing system parameters 
-Dhttp.proxyHost=ginger 
-Dhttp.proxyPort=80 
-DproxySet=true  

and some more for usr/passw for proxy invocations:
-Dhttp.proxy.username=username
-Dhttp.proxy.password=password

or these for non-proxied invocations:
-Dhttp.basic.username=username
-Dhttp.basic.password=password

Not really sure what to use so i specify them both.


Using these settings generates this stack:

       
java.net.UnknownHostException: test.remotehost.com
        at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:177)
        at java.net.Socket.connect(Socket.java:516)
        at java.net.Socket.connect(Socket.java:466)
        at sun.net.NetworkClient.doConnect(NetworkClient.java:157)
        at sun.net.www.http.HttpClient.openServer(HttpClient.java:365)
        at sun.net.www.http.HttpClient.openServer(HttpClient.java:477)
        at sun.net.www.protocol.https.HttpsClient.(HttpsClient.java:278)
        at sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:335)
        at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnecti
on.java:176)
        at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:747)
        at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:1
62)
        at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:839)
        at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:230)
        at org.jboss.remoting.transport.http.HTTPClientInvoker.useHttpURLConnection(HTTPClientInvoker.java:163)
        at org.jboss.remoting.transport.http.HTTPClientInvoker.transport(HTTPClientInvoker.java:81)
        at org.jboss.remoting.RemoteClientInvoker.invoke(RemoteClientInvoker.java:143)
        at org.jboss.remoting.Client.invoke(Client.java:525)
        at org.jboss.remoting.Client.invoke(Client.java:488)
        at org.jboss.ws.soap.SOAPConnectionImpl.call(SOAPConnectionImpl.java:189)
        at org.jboss.ws.jaxrpc.CallImpl.invokeInternal(CallImpl.java:687)
        at org.jboss.ws.jaxrpc.CallImpl.invoke(CallImpl.java:404)
        at org.jboss.ws.jaxrpc.CallProxy.invoke(CallProxy.java:148)
        at $Proxy105.SSEKService(Unknown Source)

No calls to my proxyHost according to a netstat -a.
If i check the jboss source code it's not in a state where it could handle any kind of response like "407 Proxy Authentication Required"

If i then change all settings to instead use -Dhttps i get a bit further but it gives me this stack:

java.io.IOException: Unable to tunnel through proxy. Proxy returns "HTTP/1.1 407 Proxy Authentication Required"
        at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1327)
        at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnec
tion.java:168)
        at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:839)
        at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:230)
        at org.jboss.remoting.transport.http.HTTPClientInvoker.useHttpURLConnection(HTTPClientInvoker.java:163)
        at org.jboss.remoting.transport.http.HTTPClientInvoker.transport(HTTPClientInvoker.java:81)
        at org.jboss.remoting.RemoteClientInvoker.invoke(RemoteClientInvoker.java:143)
        at org.jboss.remoting.Client.invoke(Client.java:525)
        at org.jboss.remoting.Client.invoke(Client.java:488)
        at org.jboss.ws.soap.SOAPConnectionImpl.call(SOAPConnectionImpl.java:189)
        at org.jboss.ws.jaxrpc.CallImpl.invokeInternal(CallImpl.java:687)
        at org.jboss.ws.jaxrpc.CallImpl.invoke(CallImpl.java:404)
        at org.jboss.ws.jaxrpc.CallProxy.invoke(CallProxy.java:148)
        at $Proxy105.SSEKService(Unknown Source)
 

If i do a snoop on this network activity, i can see the proxy trying to get some authentication from my outgoing call, but it doesnt provide it. Now i seams to using the proxy part from jdk5 according to the stack (and by looking in the jdk-source).

Any suggestions on correct way to specify the host, user and password?

Thanks in advance :) /Fredrik



View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4035018#4035018

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4035018



More information about the jboss-user mailing list