All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.littleshoot.proxy.MitmManager Maven / Gradle / Ivy

package org.littleshoot.proxy;

import javax.net.ssl.SSLEngine;
import javax.net.ssl.SSLSession;

/**
 * MITMManagers encapsulate the logic required for letting LittleProxy act as a
 * man in the middle for HTTPS requests.
 */
public interface MitmManager {
    /**
     * Creates an {@link SSLEngine} for encrypting the server connection.
     * 
     * Note: Peer information is needed to send the server_name extension in
     * handshake with Server Name Indication (SNI).
     * 
     * @param peerHost
     *            to start a client connection to the server.
     * @param peerPort
     *            to start a client connection to the server. 
     * 
     * @return
     */
    SSLEngine serverSslEngine(String peerHost, int peerPort);

    /**
     * 

* Creates an {@link SSLEngine} for encrypting the client connection based * on the given serverSslSession. *

* *

* The serverSslSession is provided in case this method needs to inspect the * server's certificates or something else about the encryption on the way * to the server. *

* *

* This is the place where one would implement impersonation of the server * by issuing replacement certificates signed by the proxy's own * certificate. *

* * @param serverSslSession * the {@link SSLSession} that's been established with the server * @return */ SSLEngine clientSslEngineFor(SSLSession serverSslSession); }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy