diff --git a/apps/jetty/build.xml b/apps/jetty/build.xml
index f65c75208b..b939e1432b 100644
--- a/apps/jetty/build.xml
+++ b/apps/jetty/build.xml
@@ -75,26 +75,29 @@
+
-
+
+
-
-
+
-
+
diff --git a/installer/resources/clients.config b/installer/resources/clients.config
index 8d408cb17a..111845921f 100644
--- a/installer/resources/clients.config
+++ b/installer/resources/clients.config
@@ -42,6 +42,10 @@ clientApp.2.startOnLoad=true
# run our own eepsite with a seperate jetty instance
clientApp.3.main=org.mortbay.start.Main
clientApp.3.name=I2P webserver (eepsite)
+## To use the rewrite handler, edit jetty-rewrite.xml and use:
+#clientApp.3.args="/path/to/jetty.xml" "/path/to/jetty-rewrite.xml"
+## To use local SSL, edit jetty-ssl.xml and use:
+#clientApp.3.args="/path/to/jetty.xml" "/path/to/jetty-ssl.xml"
clientApp.3.args="eepsite/jetty.xml"
clientApp.3.delay=30
clientApp.3.startOnLoad=true
diff --git a/installer/resources/eepsite/jetty-rewrite.xml b/installer/resources/eepsite/jetty-rewrite.xml
new file mode 100644
index 0000000000..ef5043aac0
--- /dev/null
+++ b/installer/resources/eepsite/jetty-rewrite.xml
@@ -0,0 +1,149 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+ false
+ requestedPath
+
+
+
+
+
+ -
+
+
+
+
+
+
+
+ /*
+ 500
+ Server busy
+
+
+
+
+
+
+
+ -
+
+
+
+
+ -
+
+ /favicon.ico
+ Cache-Control
+ Max-Age=3600,public
+ true
+
+
+
+
+
+ -
+
+ /rewrite/dump/regex/([^/]*)/(.*)
+ /test/dump/$2/$1
+
+
+
+
+ -
+
+ /rewrite
+ /rewrittento
+
+
+
+
+ -
+
+ /rewrite/session/
+ 401
+ Setting error code 401
+
+
+
+
+ -
+
+ *.jsp
+ Server
+ Server for JSP
+
+
+
+
+ -
+
+ /rewrite/dispatch
+ http://jetty.mortbay.org
+
+
+
+ -
+
+ X-Forwarded-Scheme
+ https
+ https
+
+
+
+ -
+
+
+
+
+
- mortbay.com
+ - www.mortbay.com
+ - mortbay.org
+ - www.mortbay.org
+
+
+
+
+
+
+ /*
+ CookiePatternRule
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/router/java/src/net/i2p/router/startup/MigrateJetty.java b/router/java/src/net/i2p/router/startup/MigrateJetty.java
index 6a82fff95e..ab01c28553 100644
--- a/router/java/src/net/i2p/router/startup/MigrateJetty.java
+++ b/router/java/src/net/i2p/router/startup/MigrateJetty.java
@@ -20,6 +20,7 @@ import net.i2p.router.RouterContext;
* Saves $D/jetty.xml to $D/jetty5.xml
* Copies $I2P/eepsite-jetty6/jetty.xml to $D/jetty.xml, edited for $D
* Copies $I2P/eepsite-jetty6/jetty-ssl.xml to $D/jetty-ssl.xml, edited for $D
+ * Copies $I2P/eepsite-jetty6/jetty-rewrite.xml to $D/jetty-rewrite.xml
* Copies $I2P/eepsite-jetty6/context/base-context.xml to $D/jetty.xml, edited for $D
* Copies $I2P/eepsite-jetty6/context/cgi-context.xml to $D/jetty.xml, edited for $D
* Copies $I2P/eepsite-jetty6/etc/* to $D/etc
@@ -56,9 +57,13 @@ abstract class MigrateJetty {
System.err.println("WARNING: Jetty 6 unavailable, cannot migrate " + client);
continue;
}
- String xml = app.args;
- if (xml == null)
+ if (app.args == null)
continue;
+ // remove quotes
+ String args[] = LoadClientAppsJob.parseArgs(app.args);
+ if (args.length == 0)
+ continue;
+ String xml = args[0];
File xmlFile = new File(xml);
if (!xmlFile.isAbsolute())
xmlFile = new File(ctx.getAppDir(), xml);
@@ -98,6 +103,7 @@ abstract class MigrateJetty {
(new File(eepsite, "contexts")).mkdir();
WorkingDir.migrateJettyXml(baseEep, eepsite, BASE_CONTEXT, "./eepsite/", newPath);
WorkingDir.migrateJettyXml(baseEep, eepsite, CGI_CONTEXT, "./eepsite/", newPath);
+ WorkingDir.copyFile(new File(baseEep, "jetty-rewrite.xml"), new File(eepsite, "jetty-rewrite.xml"));
(new File(eepsite, "etc")).mkdir();
File to = new File(eepsite, "etc/realm.properties");
if (!to.exists())