This application uses java Sockets to work as a proxy server
To build this project you can use the maven wrapper included
./mvnw.cmd clean install
Once you build the project you can just use java to run this application using the next command
java -jar proxy-0.0.1-SNAPSHOT.jar
This spring boot application that implements CommandLineRunner interface to start a ClientHandler that will be watching for client calls to the proxy port.
The client handler will create a ServerSocket to listen for client calls on the configured port and it will create a new thread for every call to be able to keep receiving requests. The thread that will process the client request will be using a RequestHandler
The only configurable value now for this application is the port used to listen for client calls and the logging levels we can change it using externalized configuration. Below we will see default values for confoiguration
logging.level.root=WARN
logging.level.com.proxy=INFO
proxy.port=8081
To test that the service is working we can use our device connected to the proxy server to run the following tests
- To test http call open on a web browser
http://google.com
- To test https call open on a web browser
https://google.com
and search something on google
If we want to use the same computer we can also make use of a tool like postman and configure it to use the proxy that we have running, we can read how to do it here
Proxy Setup
Load Google Using Proxy
Search on Google
Application Logs on Eclipse