r01f.httpclient
Class SSLTunnelSocketFactory

java.lang.Object
  extended by javax.net.SocketFactory
      extended by javax.net.ssl.SSLSocketFactory
          extended by r01f.httpclient.SSLTunnelSocketFactory

public class SSLTunnelSocketFactory
extends javax.net.ssl.SSLSocketFactory

Esta clase se utilizará cada vez que se quiera conectar a una url https através de Proxy. Realiza el HandShake entre un Cliente, el Servidor destino através de tunneling(proxy.)


Field Summary
private  javax.net.ssl.SSLSocketFactory _dfactory
           
private  java.lang.String _proxyHost
           
private  java.lang.String _proxyPassword
           
private  int _proxyPort
           
private  java.lang.String _proxyUser
           
 
Constructor Summary
SSLTunnelSocketFactory(java.lang.String proxyHost, java.lang.String proxyPort, java.lang.String usr, java.lang.String pwd)
           
 
Method Summary
private  void _doTunnelHandshake(java.net.Socket proxySocket, java.lang.String host, int port)
          Realiza la comunicación SSL entre el proxy y el host remoto.
 java.net.Socket createSocket(java.net.InetAddress remoteHostAddr, int remotePort)
           
 java.net.Socket createSocket(java.net.InetAddress remoteHostAddr, int remotePort, java.net.InetAddress proxyAddr, int proxyPort)
           
 java.net.Socket createSocket(java.net.Socket socket, java.lang.String remoteHost, int remotePort, boolean flag)
           
 java.net.Socket createSocket(java.lang.String remoteHost, int remotePort)
           
 java.net.Socket createSocket(java.lang.String remoteHost, int remotePort, java.net.InetAddress proxyAddr, int proxyPort)
           
 java.lang.String[] getDefaultCipherSuites()
           
 java.lang.String[] getSupportedCipherSuites()
           
 void setDelegateFactory(javax.net.ssl.SSLSocketFactory sslsocketfactory)
           
 void setProxyAuth(java.lang.String usr, java.lang.String pwd)
           
 java.lang.String toString()
           
 
Methods inherited from class javax.net.ssl.SSLSocketFactory
getDefault
 
Methods inherited from class javax.net.SocketFactory
createSocket
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

_dfactory

private javax.net.ssl.SSLSocketFactory _dfactory

_proxyHost

private java.lang.String _proxyHost

_proxyPort

private int _proxyPort

_proxyUser

private java.lang.String _proxyUser

_proxyPassword

private java.lang.String _proxyPassword
Constructor Detail

SSLTunnelSocketFactory

public SSLTunnelSocketFactory(java.lang.String proxyHost,
                              java.lang.String proxyPort,
                              java.lang.String usr,
                              java.lang.String pwd)
Method Detail

createSocket

public java.net.Socket createSocket(java.lang.String remoteHost,
                                    int remotePort)
                             throws java.io.IOException,
                                    java.net.UnknownHostException
Specified by:
createSocket in class javax.net.SocketFactory
Throws:
java.io.IOException
java.net.UnknownHostException

createSocket

public java.net.Socket createSocket(java.net.InetAddress remoteHostAddr,
                                    int remotePort)
                             throws java.io.IOException
Specified by:
createSocket in class javax.net.SocketFactory
Throws:
java.io.IOException

createSocket

public java.net.Socket createSocket(java.lang.String remoteHost,
                                    int remotePort,
                                    java.net.InetAddress proxyAddr,
                                    int proxyPort)
                             throws java.io.IOException,
                                    java.net.UnknownHostException
Specified by:
createSocket in class javax.net.SocketFactory
Throws:
java.io.IOException
java.net.UnknownHostException

createSocket

public java.net.Socket createSocket(java.net.InetAddress remoteHostAddr,
                                    int remotePort,
                                    java.net.InetAddress proxyAddr,
                                    int proxyPort)
                             throws java.io.IOException
Specified by:
createSocket in class javax.net.SocketFactory
Throws:
java.io.IOException

createSocket

public java.net.Socket createSocket(java.net.Socket socket,
                                    java.lang.String remoteHost,
                                    int remotePort,
                                    boolean flag)
                             throws java.io.IOException,
                                    java.net.UnknownHostException
Specified by:
createSocket in class javax.net.ssl.SSLSocketFactory
Throws:
java.io.IOException
java.net.UnknownHostException

getDefaultCipherSuites

public java.lang.String[] getDefaultCipherSuites()
Specified by:
getDefaultCipherSuites in class javax.net.ssl.SSLSocketFactory

getSupportedCipherSuites

public java.lang.String[] getSupportedCipherSuites()
Specified by:
getSupportedCipherSuites in class javax.net.ssl.SSLSocketFactory

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

setDelegateFactory

public void setDelegateFactory(javax.net.ssl.SSLSocketFactory sslsocketfactory)

setProxyAuth

public void setProxyAuth(java.lang.String usr,
                         java.lang.String pwd)

_doTunnelHandshake

private void _doTunnelHandshake(java.net.Socket proxySocket,
                                java.lang.String host,
                                int port)
                         throws java.io.IOException
Realiza la comunicación SSL entre el proxy y el host remoto.

Parameters:
proxySocket - socket con el proxy
host - host a acceder a través del proxy
port - puerto del host a acceder a través del proxy
Throws:
java.io.IOException - si NO se puede acceder al host a través del proxy