participate


Java Secure Socket Extension (JSSE) - Here is example code for HTTPS Tunneling through proxy(400 Lines of code)
<<   Back to Forum  |   Give us Feedback
This topic has 10 replies on 1 page.
nightmask
Posts:14
Registered: 11/15/98
Here is example code for HTTPS Tunneling through proxy(400 Lines of code)   
Sep 20, 2001 10:06 PM

 
Here is the source for Https Tunneling that I have gotten working.
It also does Basic Authentication with the proxy if necessary.
It is based on Pua Yeow Cheong's JavaWorld Tip 111.
Thanks to David Lord for providing the final breakthrough that I needed.

I have posted it here for anyone who wishes to use it.
If you find any bugs, or write any improvements, please tack them onto the end of this thread.

I have been trying to tackle this problem for quite some time, so I hope this helps a few of you out there.

Lots of Luck,
nightmask.

<----- Begin Copy and Paste -------->
import java.net.*;
import java.io.*;
import java.security.*;
import sun.misc.BASE64Encoder;
import javax.net.*;
import javax.net.ssl.*;
 
/*
 *  This example is based on JavaWorld Tip 111. Thanks to Pua Yeow Cheong for writing it.
 *  It tunnels through a proxy using the Https protocol.
 *  Thanks go to David Lord in the java forums for figuring out the main problem with Tip 111
 *  PLEASE NOTE: You need to have the JSSE 1.0.2 jars installed for this to work
 */
/**
 *  Downloads contents of a URL, using Proxy Tunneling and Basic Authentication
 */
public class URLReader {
    /**
     *  The main program for the URLReader class
     */
    public static void main(String[] args) throws Exception {
        //set up strings for use in app. Change these to your own settings
        String proxyPassword = "password";
        String proxyUsername = "username";
        String proxyHost = "myproxy.com";
        String proxyPort = "3128";
        String connectionURL = "https://www.verisign.com";
 
        //set up system properties to indicate we are using a proxy
        System.setProperty("https.proxyHost", proxyHost);
        System.setProperty("https.proxyPort", proxyPort);
        System.setProperty("proxyHost", proxyHost);
        System.setProperty("proxyPort", proxyPort);
        System.setProperty("proxySet", "true");
        System.setProperty("http.proxyHost", proxyHost);
        System.setProperty("http.proxyPort", proxyPort);
        System.setProperty("http.proxySet", "true");
 
        //set up handler for jsse
        System.setProperty("java.protocol.handler.pkgs", "com.sun.net.ssl.internal.www.protocol");
        java.security.Provider prov = new com.sun.net.ssl.internal.ssl.Provider();
        Security.addProvider(prov);
        //create the connection
        URL myURL = new URL(connectionURL);
        URLConnection myConnection = myURL.openConnection();
        if (myConnection instanceof com.sun.net.ssl.HttpsURLConnection) {
            ((com.sun.net.ssl.HttpsURLConnection) myConnection).setSSLSocketFactory(new SSLTunnelSocketFactory(System.getProperty("proxyHost"), System.getProperty("proxyPort")));
        }
        myConnection.setDoInput(true);
        myConnection.setDoOutput(true);
        BufferedReader in;
        try {
            System.err.println("opening Input stream1");
            in = new BufferedReader(
                    new InputStreamReader(
                    myConnection.getInputStream()));
            String inputLine;
            System.err.println("Input stream is Open1");
            while ((inputLine = in.readLine()) != null) {
                System.err.println(inputLine);
            }
            in.close();
            System.err.println("Input stream is Closed1");
        } catch (Exception e) {
            e.printStackTrace(System.err);
            String tmp = e.getMessage().toLowerCase().trim();
            System.err.println("tmp *" + tmp + "*");
            if (tmp.indexOf("http") > -1) {
                //http error message to be parsed
 
                tmp = tmp.substring(tmp.indexOf("http")).trim();
                System.err.println("tmp *" + tmp + "*");
                tmp = tmp.substring(8).trim();
                System.err.println("tmp *" + tmp + "*");
                if (tmp.startsWith("407")) {
                    //proxy authentication required
 
                    myURL = new URL(connectionURL);
                    myConnection = myURL.openConnection();
                    if (myConnection instanceof com.sun.net.ssl.HttpsURLConnection) {
                        ((com.sun.net.ssl.HttpsURLConnection) myConnection).setSSLSocketFactory(new SSLTunnelSocketFactory(System.getProperty("proxyHost"), System.getProperty("proxyPort"), proxyUsername, proxyPassword));
                    }
                    myConnection.setDoInput(true);
                    myConnection.setDoOutput(true);
 
                    try {
                        System.err.println("opening Input stream 2");
                        in = new BufferedReader(
                                new InputStreamReader(
                                myConnection.getInputStream()));
                        String inputLine;
                        System.err.println("Input stream is Open 2");
 
                        while ((inputLine = in.readLine()) != null) {
                            System.out.println(inputLine);
                        }
                        in.close();
                        System.err.println("Input stream is closed 2");
                    } catch (Exception ex) {
                        System.err.println(ex.getMessage());
                        ex.printStackTrace(System.err);
                    }
                }
            }
        }
    }
 
}
 
/**
 *  SSLSocket used to tunnel through a proxy
 */
class SSLTunnelSocketFactory extends SSLSocketFactory {
 
 
    private String tunnelHost;
    private int tunnelPort;
    private SSLSocketFactory dfactory;
    private String tunnelPassword;
    private String tunnelUserName;
    private boolean socketConnected = false;
    private int falsecount = 0;
 
 
    /**
     *  Constructor for the SSLTunnelSocketFactory object
     *
     *@param  proxyHost  The url of the proxy host
     *@param  proxyPort  the port of the proxy
     */
    public SSLTunnelSocketFactory(String proxyHost, String proxyPort) {
        System.err.println("creating Socket Factory");
        tunnelHost = proxyHost;
        tunnelPort = Integer.parseInt(proxyPort);
        dfactory = (SSLSocketFactory) SSLSocketFactory.getDefault();
    }
 
 
    /**
     *  Constructor for the SSLTunnelSocketFactory object
     *
     *@param  proxyHost      The url of the proxy host
     *@param  proxyPort      the port of the proxy
     *@param  proxyUserName  username for authenticating with the proxy
     *@param  proxyPassword  password for authenticating with the proxy
     */
    public SSLTunnelSocketFactory(String proxyHost, String proxyPort, String proxyUserName, String proxyPassword) {
        System.err.println("creating Socket Factory with password/username");
        tunnelHost = proxyHost;
        tunnelPort = Integer.parseInt(proxyPort);
        tunnelUserName = proxyUserName;
        tunnelPassword = proxyPassword;
        dfactory = (SSLSocketFactory) SSLSocketFactory.getDefault();
    }
 
 
    /**
     *  Sets the proxyUserName attribute of the SSLTunnelSocketFactory object
     *
     *@param  proxyUserName  The new proxyUserName value
     */
    public void setProxyUserName(String proxyUserName) {
        tunnelUserName = proxyUserName;
    }
 
 
    /**
     *  Sets the proxyPassword attribute of the SSLTunnelSocketFactory object
     *
     *@param  proxyPassword  The new proxyPassword value
     */
    public void setProxyPassword(String proxyPassword) {
        tunnelPassword = proxyPassword;
    }
 
 
    /**
     *  Gets the supportedCipherSuites attribute of the SSLTunnelSocketFactory
     *  object
     *
     *@return    The supportedCipherSuites value
     */
    public String[] getSupportedCipherSuites() {
        return dfactory.getSupportedCipherSuites();
    }
 
 
    /**
     *  Gets the defaultCipherSuites attribute of the SSLTunnelSocketFactory
     *  object
     *
     *@return    The defaultCipherSuites value
     */
    public String[] getDefaultCipherSuites() {
        return dfactory.getDefaultCipherSuites();
    }
 
 
    /**
     *  Gets the socketConnected attribute of the SSLTunnelSocketFactory object
     *
     *@return    The socketConnected value
     */
    public synchronized boolean getSocketConnected() {
        return socketConnected;
    }
 
 
    /**
     *  Creates a new SSL Tunneled Socket
     *
     *@param  s                         Ignored
     *@param  host                      destination host
     *@param  port                      destination port
     *@param  autoClose                 wether to close the socket automaticly
     *@return                           proxy tunneled socket
     *@exception  IOException           raised by an IO error
     *@exception  UnknownHostException  raised when the host is unknown
     */
    public Socket createSocket(Socket s, String host, int port, boolean autoClose)
             throws IOException, UnknownHostException {
        Socket tunnel = new Socket(tunnelHost, tunnelPort);
        doTunnelHandshake(tunnel, host, port);
        SSLSocket result = (SSLSocket) dfactory.createSocket(tunnel, host, port, autoClose);
        result.addHandshakeCompletedListener(
            new HandshakeCompletedListener() {
                public void handshakeCompleted(HandshakeCompletedEvent event) {
                    System.out.println("Handshake Finished!");
                    System.out.println("\t CipherSuite :" + event.getCipherSuite());
                    System.out.println("\t SessionId: " + event.getSession());
                    System.out.println("\t PeerHost: " + event.getSession().getPeerHost());
                    setSocketConnected(true);
                }
            });
        // thanks to David Lord in the java forums for figuring out this line is the problem
        // result.startHandshake(); //this line is the bug which stops Tip111 from working correctly
        return result;
    }
 
 
    /**
     *  Creates a new SSL Tunneled Socket
     *
     *@param  host                      destination host
     *@param  port                      destination port
     *@return                           tunneled SSL Socket
     *@exception  IOException           raised by IO error
     *@exception  UnknownHostException  raised when the host is unknown
     */
    public Socket createSocket(String host, int port)
             throws IOException, UnknownHostException {
        return createSocket(null, host, port, true);
    }
 
 
    /**
     *  Creates a new SSL Tunneled Socket
     *
     *@param  host                      Destination Host
     *@param  port                      Destination Port
     *@param  clientHost                Ignored
     *@param  clientPort                Ignored
     *@return                           SSL Tunneled Socket
     *@exception  IOException           Raised when IO error occurs
     *@exception  UnknownHostException  Raised when the destination host is
     *      unknown
     */
    public Socket createSocket(String host, int port, InetAddress clientHost,
            int clientPort)
             throws IOException, UnknownHostException {
        return createSocket(null, host, port, true);
    }
 
 
    /**
     *  Creates a new SSL Tunneled Socket
     *
     *@param  host             destination host
     *@param  port             destination port
     *@return                  tunneled SSL Socket
     *@exception  IOException  raised when IO error occurs
     */
    public Socket createSocket(InetAddress host, int port)
             throws IOException {
        return createSocket(null, host.getHostName(), port, true);
    }
 
 
    /**
     *  Creates a new SSL Tunneled Socket
     *
     *@param  address          destination host
     *@param  port             destination port
     *@param  clientAddress    ignored
     *@param  clientPort       ignored
     *@return                  tunneled SSL Socket
     *@exception  IOException  raised when IO exception occurs
     */
    public Socket createSocket(InetAddress address, int port,
            InetAddress clientAddress, int clientPort)
             throws IOException {
        return createSocket(null, address.getHostName(), port, true);
    }
 
 
    /**
     *  Sets the socketConnected attribute of the SSLTunnelSocketFactory object
     *
     *@param  b  The new socketConnected value
     */
    private synchronized void setSocketConnected(boolean b) {
        socketConnected = b;
    }
 
 
    /**
     *  Description of the Method
     *
     *@param  tunnel           tunnel socket
     *@param  host             destination host
     *@param  port             destination port
     *@exception  IOException  raised when an IO error occurs
     */
    private void doTunnelHandshake(Socket tunnel, String host, int port) throws IOException {
        OutputStream out = tunnel.getOutputStream();
        //generate connection string
        String msg = "CONNECT " + host + ":" + port + " HTTP/1.0\n"
                 + "User-Agent: "
                 + sun.net.www.protocol.http.HttpURLConnection.userAgent;
        if (tunnelUserName != null && tunnelPassword != null) {
            //add basic authentication header for the proxy
            sun.misc.BASE64Encoder enc = new sun.misc.BASE64Encoder();
            String encodedPassword = enc.encode((tunnelUserName + ":" + tunnelPassword).getBytes());
            msg = msg + "\nProxy-Authorization: Basic " + encodedPassword;
        }
        msg = msg + "\nContent-Length: 0";
        msg = msg + "\nPragma: no-cache";
 
        msg = msg + "\r\n\r\n";
 
        System.err.println(msg);
        byte b[];
        try {
            //we really do want ASCII7 as the http protocol doesnt change with locale
            b = msg.getBytes("ASCII7");
        } catch (UnsupportedEncodingException ignored) {
            //If ASCII7 isn't there, something is seriously wrong!
            b = msg.getBytes();
        }
        out.write(b);
        out.flush();
 
        byte reply[] = new byte[200];
        int replyLen = 0;
        int newlinesSeen = 0;
        boolean headerDone = false;
 
        InputStream in = tunnel.getInputStream();
        boolean error = false;
 
        while (newlinesSeen < 2) {
            int i = in.read();
            if (i < 0) {
                throw new IOException("Unexpected EOF from Proxy");
            }
            if (i == '\n') {
                headerDone = true;
                ++newlinesSeen;
            } else
                    if (i != '\r') {
                newlinesSeen = 0;
                if (!headerDone && replyLen < reply.length) {
                    reply[replyLen++] = (byte) i;
                }
            }
        }
 
        //convert byte array to string
        String replyStr;
        try {
            replyStr = new String(reply, 0, replyLen, "ASCII7");
        } catch (UnsupportedEncodingException ignored) {
            replyStr = new String(reply, 0, replyLen);
        }
 
        //we check for connection established because our proxy returns http/1.1 instead of 1.0
        if (replyStr.toLowerCase().indexOf("200 connection established") == -1) {
            System.err.println(replyStr);
            throw new IOException("Unable to tunnel through " + tunnelHost + ":" + tunnelPort + ". Proxy returns\"" + replyStr + "\"");
        }
        //tunneling hanshake was successful
    }
    
}

<----- End Copy and Paste -------->
 
FelipeGaucho
Posts:983
Registered: 5/25/01
Re: Here is example code for HTTPS Tunneling through proxy(400 Lines of code)   
Sep 21, 2001 7:02 AM (reply 1 of 10)  (In reply to original post )

 
I'm trying to use your code to access a Https server which requires the client authentication...


connection aborted by peer: socket write error


what can I do to send the client certificate at the handshake moment ???

can I set something like:

System.setProperty("https.clientCert", <clientCert>.toString);

?? or any other command setting the client certificate ??

thanks in advance for any help
 
jesmago
Posts:1
Registered: 8/26/00
Re: Here is example code for HTTPS Tunneling through proxy(400 Lines of cod   
Mar 7, 2002 8:27 AM (reply 2 of 10)  (In reply to #1 )

 
A m? me funciono correctamente este c?digo pero cambiando la siguiente l?nea:
if (tmp.startsWith("407"))
por if (tmp.startsWith("403")).
Gracias por el c?digo Felipe.

This code worked properly for me when i changed the folowing line
if (tmp.startsWith("407"))
with this one
if (tmp.startsWith("403"))
thanks Felipe for your code
 
pkuthari
Posts:3
Registered: 2/23/00
Re: Here is example code for HTTPS Tunneling through proxy(400 Lines of code)   
Mar 22, 2002 12:48 PM (reply 3 of 10)  (In reply to original post )

 
I get the following IOException when I try this code to get out of the firewall proxy server.

Untrusted Server cert chain
 
janajs
Posts:1
Registered: 4/22/02
Re: Here is example code for HTTPS Tunneling through proxy(400 Lines of code)   
Apr 22, 2002 3:54 AM (reply 4 of 10)  (In reply to original post )

 

hi when i tried your program i am getting the following error can you pls help me out

(ERROR : is
PROXY AUTHORIZATION REQUIRED")

but only thing, instead of giving proxy host name i gave proxy server's ip as they will allow only ip address.

C:\perl\projects\securesite>java URLReader
creating Socket Factory
opening Input stream1
CONNECT 216.168.252.86:443 HTTP/1.0
User-Agent: Java1.3.1
Content-Length: 0
Pragma: no-cache


HTTP/1.0 407 Proxy authorization required
java.io.IOException: Unable to tunnel through 10.111.35.33:8080. Proxy returns "HTTP/1.0 407 Proxy authorization required"
at com.sun.net.ssl.internal.www.protocol.https.HttpsClient.a([DashoPro-V1.2-120198])
at com.sun.net.ssl.internal.www.protocol.https.HttpsClient.doConnect([DashoPro-V1.2-120198])
at com.sun.net.ssl.internal.www.protocol.https.NetworkClient.openServer([DashoPro-V1.2-120198])
at com.sun.net.ssl.internal.www.protocol.https.HttpClient.l([DashoPro-V1.2-120198])
at com.sun.net.ssl.internal.www.protocol.https.HttpClient.<init>([DashoPro-V1.2-120198])
at com.sun.net.ssl.internal.www.protocol.https.HttpsClient.<init>([DashoPro-V1.2-120198])
at com.sun.net.ssl.internal.www.protocol.https.HttpsClient.a([DashoPro-V1.2-120198])
at com.sun.net.ssl.internal.www.protocol.https.HttpsClient.a([DashoPro-V1.2-120198])
at com.sun.net.ssl.internal.www.protocol.https.HttpsURLConnection.connect([DashoPro-V1.2-120198])
at com.sun.net.ssl.internal.www.protocol.https.HttpsURLConnection.getInputStream([DashoPro-V1.2-120198])
at URLReader.main(URLReader.java:44)
tmp unable to tunnel through 10.111.35.33:8080. proxy returns "http/1.0 407 proxy authorization required"
tmp http/1.0 407 proxy authorization required"
tmp 407 proxy authorization required"
creating Socket Factory with password/username
opening Input stream 2
CONNECT 216.168.252.86:443 HTTP/1.0
User-Agent: Java1.3.1
Proxy-Authorization: Basic YnNjVU40OlN1cmVzaCBKYW5h
Content-Length: 0
Pragma: no-cache


HTTP/1.0 407 Proxy authorization required
Unable to tunnel through 10.111.35.33:8080. Proxy returns "HTTP/1.0 407 Proxy authorization required"
java.io.IOException: Unable to tunnel through 10.111.35.33:8080. Proxy returns "HTTP/1.0 407 Proxy authorization required"
at com.sun.net.ssl.internal.www.protocol.https.HttpsClient.a([DashoPro-V1.2-120198])
at com.sun.net.ssl.internal.www.protocol.https.HttpsClient.doConnect([DashoPro-V1.2-120198])
at com.sun.net.ssl.internal.www.protocol.https.NetworkClient.openServer([DashoPro-V1.2-120198])
at com.sun.net.ssl.internal.www.protocol.https.HttpClient.l([DashoPro-V1.2-120198])
at com.sun.net.ssl.internal.www.protocol.https.HttpClient.<init>([DashoPro-V1.2-120198])
at com.sun.net.ssl.internal.www.protocol.https.HttpsClient.<init>([DashoPro-V1.2-120198])
at com.sun.net.ssl.internal.www.protocol.https.HttpsClient.a([DashoPro-V1.2-120198])
at com.sun.net.ssl.internal.www.protocol.https.HttpsClient.a([DashoPro-V1.2-120198])
at com.sun.net.ssl.internal.www.protocol.https.HttpsURLConnection.connect([DashoPro-V1.2-120198])
at com.sun.net.ssl.internal.www.protocol.https.HttpsURLConnection.getInputStream([DashoPro-V1.2-120198])
at URLReader.main(URLReader.java:80)
 
mali_suneel
Posts:28
Registered: 7/24/02
Re: Here is example code for HTTPS Tunneling through proxy(400 Lines of code)   
Mar 28, 2003 12:53 AM (reply 5 of 10)  (In reply to original post )

 
Hi,

I am also getting same problem like

java.io.IOException: Unable to tunnel through 10.200.52.20:8080. Proxy returns "HTTP/1.0 407 Proxy Authentication Required"
at com.sun.net.ssl.internal.www.protocol.https.HttpsClient.a([DashoPro-V1.2-120198])
at com.sun.net.ssl.internal.www.protocol.https.HttpsClient.doConnect([DashoPro-V1.2-120198])
at com.sun.net.ssl.internal.www.protocol.https.NetworkClient.openServer([DashoPro-V1.2-120198])
at com.sun.net.ssl.internal.www.protocol.https.HttpClient.l([DashoPro-V1.2-120198])
at com.sun.net.ssl.internal.www.protocol.https.HttpClient.<init>([DashoPro-V1.2-120198])
at com.sun.net.ssl.internal.www.protocol.https.HttpsClient.<init>([DashoPro-V1.2-120198])
at com.sun.net.ssl.internal.www.protocol.https.HttpsClient.a([DashoPro-V1.2-120198])
at com.sun.net.ssl.internal.www.protocol.https.HttpsClient.a([DashoPro-V1.2-120198])
at com.sun.net.ssl.internal.www.protocol.https.HttpsURLConnection.connect([DashoPro-V1.2-120198])
at com.sun.net.ssl.internal.www.protocol.https.HttpsURLConnection.getOutputStream([DashoPro-V1.2-120198])

What might be the problem, if anyone know this ,Please help me this.
 
akhilnagpal
Posts:183
Registered: 12/4/01
Re: Here is example code for HTTPS Tunneling through proxy(400 Lines of code)   
Apr 9, 2003 9:28 PM (reply 6 of 10)  (In reply to #5 )

 
HI All,
May be I dont understand something..so correct me..if this way we are using the SSLTunnelSocketFactory object to set it as the HttpsURLConnection.setSSLSOcketFectory(new SSLTunnelSocketFactory(.. , ..))...how are we setting our KeyManagers and TrustManager array..and how handshake certificate check will be done...
the application (without tunneling ) i worked out was in which i was creating SSLContext using the arrays of KM,TM and then getting SocketFactory from it and then calling HttpsURLConnection.setSSLSOcketFectory (sslsocketFactory)..this is the way i understand that connection object has the information abt certificates..
but when using tunneling how r we passing this information to the urlconnection object..

enlighten me with this:))
thanks
Akhil
 
rdare
Posts:24
Registered: 9/2/99
Re: Here is example code for HTTPS Tunneling through proxy(400 Lines of code)   
Apr 15, 2003 8:04 AM (reply 7 of 10)  (In reply to #6 )

 
I am having the same problem with Error 407 Authentication
Required. Thank you to all who have posted code, but I have
not yet been able to get anything to work....

I see so many people with this same problem, and many people
offer "solutions" that result with many people reporting the
same problematic results. If proxy authentication tunneling
is such a neccesity, why are there so many issues in making
it work??? Why is there no sure-fire, straight forward
solution...

Suerte a todos!!

Rob.
 
chenff2
Posts:2
Registered: 5/1/01
Re: Here is example code for HTTPS Tunneling through proxy(400 Lines of code)   
Aug 27, 2003 2:03 PM (reply 8 of 10)  (In reply to #5 )

 
This might be a Security provider issue.

Tip 111 doesn't have
"java.security.Provider prov = new com.sun.net.ssl.internal.ssl.Provider();
Security.addProvider(prov);"
in its code. It worked for some people. But I am getting the 407 error.

I then added "Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());" to tip 111 sample code and it solved my problem. I guess you might need to tweak the provider so that the tunnel socket can be reused in SSL.
 
joelmex
Posts:1
Registered: 10/17/03
Re: Here is example code for HTTPS Tunneling through proxy(400 Lines of code)   
Oct 17, 2003 4:41 PM (reply 9 of 10)  (In reply to #8 )

 
Hi:
I resolved my problem with the next change:
I changed the next line:
URL myURL = new URL(connectionURL);
for this:
URL myURL = new URL(null,connectionURL,new com.sun.net.ssl.internal.www.protocol.https.Handler());
You needs letting the next utilities:
import java.net.HttpURLConnection;
import java.security.;
import javax.net.ssl.
;

The code works fine, but I?m doubt with another detail:
wheter I use the method GET, the response is OK, but wheter I use the method POST, the response is a FileNotFoundException. I tried to use a DataOutputStream object writing the Stream to bytes. It didn't work
How can I send the request with the POST method in HTTPS request?

Regards.

JoelMex
 
prakasamr
Posts:24
Registered: 6/8/07
Re: Here is example code for HTTPS Tunneling through proxy(400 Lines of code)   
Jun 17, 2007 10:04 PM (reply 10 of 10)  (In reply to original post )

 
Hi,

I am getting error like this.kindly help me what can i do,
to solve this problem.

[#|2007-06-18T10:22:19.292+0530|WARNING|sun-appserver-pe9.0|javax.enterprise.system.stream.err|_ThreadID=23;_ThreadName=httpWorkerThread-8080-4;_RequestID=550a577a-b0a3-4c38-bdc5-3678dfa9eca4;|
java.io.IOException: Unable to tunnel through proxy. Proxy returns "HTTP/1.0 407 Proxy Authentication Required"
at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:1324)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:168)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:913)
at com.sun.net.ssl.internal.www.protocol.https.HttpsURLConnectionOldImpl.getInputStream(HttpsURLConnectionOldImpl.java:204)
at com.sun.javaee.blueprints.components.ui.util.HttpClient.getInputStream(HttpClient.java:88)
at com.sun.javaee.blueprints.components.ui.rss.RssFeedHandler.setResultBuffer(RssFeedHandler.java:126)
at com.sun.javaee.blueprints.components.ui.rss.RssFeedHandler.getRssfeed(RssFeedHandler.java:100)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at com.sun.el.parser.AstValue.invoke(AstValue.java:151)
at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:283)
at com.sun.faces.application.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:71)
at org.apache.shale.remoting.impl.MethodBindingProcessor.process(MethodBindingProcessor.java:74)
at org.apache.shale.remoting.faces.RemotingPhaseListener.afterPhase(RemotingPhaseListener.java:102)
at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:287)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:132)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:397)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:278)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:536)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:240)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:179)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:73)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:182)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
at com.sun.enterprise.web.VirtualServerPipeline.invoke(VirtualServerPipeline.java:120)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:939)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:137)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:536)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:939)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:231)
at com.sun.enterprise.web.connector.grizzly.ProcessorTask.invokeAdapter(ProcessorTask.java:667)
at com.sun.enterprise.web.connector.grizzly.ProcessorTask.processNonBlocked(ProcessorTask.java:574)
at com.sun.enterprise.web.connector.grizzly.ProcessorTask.process(ProcessorTask.java:844)
at com.sun.enterprise.web.connector.grizzly.ReadTask.executeProcessorTask(ReadTask.java:287)
at com.sun.enterprise.web.connector.grizzly.ReadTask.doTask(ReadTask.java:212)
at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:252)
at com.sun.enterprise.web.connector.grizzly.WorkerThread.run(WorkerThread.java:75)
|#]
 
This topic has 10 replies on 1 page.
Back to Forum
 
Read the Developer Forums Code of Conduct

Click to email this message Email this Topic

Edit this Topic
  
 
 
Forums Statistics
    Users Online : 27
  • Guests : 138

About Sun forums
  • Sun Forums is a large collection of user generated discussions. It is here to help you ask questions, find answers, and participate in discussions.

    Check out our guide on Getting started with Sun Forums for a full walkthrough of how to best leverage the benefits of this community.

Powered by Jive Forums