Search in sources :

Example 1 with SecureProtocolSocketFactory

use of org.apache.commons.httpclient.protocol.SecureProtocolSocketFactory in project zaproxy by zaproxy.

the class HttpConnection method tunnelCreated.

/**
     * Instructs the proxy to establish a secure tunnel to the host. The socket will 
     * be switched to the secure socket. Subsequent communication is done via the secure 
     * socket. The method can only be called once on a proxied secure connection.
     *
     * @throws IllegalStateException if connection is not secure and proxied or
     * if the socket is already secure.
     * @throws IOException if an attempt to establish the secure tunnel results in an
     *   I/O error.
     */
public void tunnelCreated() throws IllegalStateException, IOException {
    LOG.trace("enter HttpConnection.tunnelCreated()");
    if (!isTunnelRequired()) {
        throw new IllegalStateException("Connection must be secure " + "and proxied or a tunnel requested to use this feature");
    }
    if (usingSecureSocket) {
        throw new IllegalStateException("Already using a secure socket");
    }
    if (isSecure()) {
        SecureProtocolSocketFactory socketFactory = (SecureProtocolSocketFactory) protocolInUse.getSocketFactory();
        socket = socketFactory.createSocket(socket, hostName, portNumber, true);
    }
    if (LOG.isDebugEnabled()) {
        LOG.debug("Secure tunnel to " + this.hostName + ":" + this.portNumber);
    }
    int sndBufSize = this.params.getSendBufferSize();
    if (sndBufSize >= 0) {
        socket.setSendBufferSize(sndBufSize);
    }
    int rcvBufSize = this.params.getReceiveBufferSize();
    if (rcvBufSize >= 0) {
        socket.setReceiveBufferSize(rcvBufSize);
    }
    int outbuffersize = socket.getSendBufferSize();
    if (outbuffersize > 2048) {
        outbuffersize = 2048;
    }
    int inbuffersize = socket.getReceiveBufferSize();
    if (inbuffersize > 2048) {
        inbuffersize = 2048;
    }
    inputStream = new BufferedInputStream(socket.getInputStream(), inbuffersize);
    outputStream = new BufferedOutputStream(socket.getOutputStream(), outbuffersize);
    usingSecureSocket = true;
    tunnelEstablished = true;
}
Also used : BufferedInputStream(java.io.BufferedInputStream) SecureProtocolSocketFactory(org.apache.commons.httpclient.protocol.SecureProtocolSocketFactory) BufferedOutputStream(java.io.BufferedOutputStream)

Aggregations

BufferedInputStream (java.io.BufferedInputStream)1 BufferedOutputStream (java.io.BufferedOutputStream)1 SecureProtocolSocketFactory (org.apache.commons.httpclient.protocol.SecureProtocolSocketFactory)1