eproxy is a web proxy that
- rewrites HTML, CSS, SVG and JavaScript
*
- rewrites data: URIs
- supports cookies
- supports HTTPS
- supports HTTP Byte Serving independent of the origin server using the
Range
header (unless rewriting) - supports cache validation using
If-Modified-Since
andIf-None-Match
- supports SOCKS proxies for your hardcore tunneling needs
- supports browsers with JavaScript disabled
- caches content in-memory and using Memcache (on Google App Engine)
- lets you customize the HTTP and TCP/IP setup
- uses robust, parser-based rewriting for HTML (using NekoHTML) and SVG (using SAX)
- uses regular expression-based rewriting for CSS (sorry, but there are no robust Java CSS parsers)
- attempts to be as secure as possible
- runs stand-alone, in a JEE container (Tomcat or Jetty) and on Google App Engine
- has really good HTTP support
eproxy does pretty well on the HTTPLeaks test. Still, it is not tested enough yet. Do not use eproxy yet if you rely on security.
You'll need
- Java (version 7 or greater)
- Maven
- Git
- App Engine SDK for Java (if you want to run eproxy on Google App Engine)
git clone https://github.com/johannburkard/eproxy.git
cd eproxy && mvn clean package
If you simply want to try out eproxy, start the .war
file in the target
directory:
java -jar target/*##*.war
Next, go to http://127.0.0.1:8080/index.html. Press Ctrl-C in the console when you're done.
Deploy the target/eproxy##....war
file.
- Create a project in Google Cloud
- Change
<application>
to the name of your project insrc/main/webapp/WEB-INF/appengine-web.xml
appcfg.sh update target/*##*/
The configuration can be found in src/main/resources/application.properties
.
The idea is based on mirrorr. Some of the code came from media.io, a project called Delivrr (sadly gone) and EAIO.
*
Planned