proxpy Code
Brought to you by:
pgbennett
| File | Date | Author | Commit |
|---|---|---|---|
| html | 2015-01-20 | pgbennett | [r1] Add source |
| nbproject | 2015-01-20 | pgbennett | [r1] Add source |
| src | 2015-01-20 | pgbennett | [r1] Add source |
| COPYING | 2015-01-20 | pgbennett | [r1] Add source |
| build.xml | 2015-01-20 | pgbennett | [r1] Add source |
| manifest.mf | 2015-01-20 | pgbennett | [r1] Add source |
| proxpy.bat | 2015-01-20 | pgbennett | [r1] Add source |
| proxpy.properties | 2015-01-20 | pgbennett | [r1] Add source |
| proxpy_start.sh | 2015-01-20 | pgbennett | [r1] Add source |
| proxpy_stop.sh | 2015-01-20 | pgbennett | [r1] Add source |
| readme.txt | 2015-01-20 | pgbennett | [r1] Add source |
| svn-commit.tmp | 2015-01-20 | pgbennett | [r1] Add source |
| truststore.jks | 2015-01-20 | pgbennett | [r1] Add source |
/**
* Peter Bennett's General Purpose Proxy and debug tool
* This has been used in development environments, it works for proxying all types of TCP traffic.
* It can be used to bypass firewall restrictions, for logging messages for debug purposes, and
* to add SSL to a non SSL connection for debug or other purposes.
* It has never been used in production. It is fully multi threaded so it may be able to handle
* high volumes.
* Runs on unix or windows, wherever there is a java environment.
*
* Usage:
* java -jar proxy.jar xxxx.properties
* java -jar proxy.jar xxxx.properties closeDown
*
* If logging is turned on in the property file you may want to redirect the output to a file.
* Also you may want to put & on the end under unix so it runs in a separate process.
*
* Parameter file:
* closedownport=25999 (available port # used for shutting down the proxy)
* truststore= (keystore - optional - only used for SSL)
* logging= (true / false default = false, for logging all messages)
* inport1= (required - assign a port number)
* inaddress1= (optional - only if need to restrict to an ip address)
* inssl1= (true / false default = false, specify true if ssl is used and logging of decrypted messages)
* inkeystore1= (required if inssl1 is true)
* inkeypasswd1= (required if inkeystore1 provided)
* outport1= (required - assign a port number)
* outaddress1= (required - where to proxy to)
* outssl1= (true / false default = false, specify true if ssl is used at destination)
* outkeystore1= (optional - only if 2-way cert needed for SSL)
* outkeypasswd1=(required if outkeystore1 provided)
* the ones with '1' at the end can be repeated as many times as desired
* with numbers from 2 up.
* SSL Options -
* 1. If input and output are both ssl and logging is false you can use inssl1 and outssl1 both false.
* The ssl will proxy straight through. If logging is true in this case then encrypted messages
* would be logged. That is not useful.
* 2. If input and output are both ssl and logging is true you must use inssl1 and outssl1 both true.
* You must have a certificate and keystore for inkeystore, the originator will see that certificate.
* for 1 way SSL you do not need outkeystore. For 2way SSL you need outkeystore with a certificate.
* The server will see that certificate.
* 3. You can convert non SSL to SSL. If sender does not want to use SSL but receiver
* uses SSL leave inssl1 as false but specify outssl1 as true. You do not need a keystore unless the
* receiver uses 2 way SSL. In that case specify outkeystore and the receiver will see this certificate.
* 4. You can convert SSL to non SSL. If sender uses SSL but receiver does not, set inssl true and outssl false.
* You need inkeystore and sender will see this certificate. If two way SSL is used, we will not check
* The sender's certificate.
* 5. You can set up a SSL tunnel for non SSL users by using proxy on the sending machine and on the receiving
* machine with appropriate options and a keystore on the receiving machine.
*/