diff --git a/build.xml b/build.xml
index e01e479686..21aa3fb3a6 100644
--- a/build.xml
+++ b/build.xml
@@ -2592,16 +2592,26 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/debian-alt/xenial/patches/0002-jetty-old-api.patch b/debian-alt/xenial/patches/0002-jetty-old-api.patch
index 569b38662f..d918a6641b 100644
--- a/debian-alt/xenial/patches/0002-jetty-old-api.patch
+++ b/debian-alt/xenial/patches/0002-jetty-old-api.patch
@@ -1,7 +1,29 @@
+Index: b/apps/jetty/java/src/net/i2p/jetty/I2PRequestLog.java
+============================================================
+--- a/apps/jetty/java/src/net/i2p/jetty/I2PRequestLog.java
++++ b/apps/jetty/java/src/net/i2p/jetty/I2PRequestLog.java
+@@ -317,7 +317,7 @@ public class I2PRequestLog extends Abstr
+ buf.append(request.getMethod());
+ buf.append(' ');
+
+- u8buf.append(request.getHttpURI().toString());
++ request.getUri().writeTo(u8buf);
+
+ buf.append(' ');
+ buf.append(request.getProtocol());
Index: b/apps/routerconsole/java/src/net/i2p/router/web/HostCheckHandler.java
===================================================================
--- a/apps/routerconsole/java/src/net/i2p/router/web/HostCheckHandler.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/HostCheckHandler.java
+@@ -15,7 +15,7 @@ import org.eclipse.jetty.server.Request;
+ import net.i2p.util.PortMapper;
+
+ import org.eclipse.jetty.server.Request;
+-import org.eclipse.jetty.server.handler.gzip.GzipHandler;
++import org.eclipse.jetty.servlets.gzip.GzipHandler;
+
+ /**
+ * Block certain Host headers to prevent DNS rebinding attacks.
@@ -44,19 +44,12 @@ public class HostCheckHandler extends Gz
_listenHosts = new HashSet(8);
setMinGzipSize(64*1024);
@@ -24,3 +46,18 @@ Index: b/apps/routerconsole/java/src/net/i2p/router/web/HostCheckHandler.java
}
}
+Index: b/apps/routerconsole/java/src/net/i2p/router/web/RouterConsoleRunner.java
+============================================================
+--- a/apps/routerconsole/java/src/net/i2p/router/web/RouterConsoleRunner.java
++++ b/apps/routerconsole/java/src/net/i2p/router/web/RouterConsoleRunner.java
+@@ -1085,8 +1085,8 @@ public class RouterConsoleRunner impleme
+ }
+
+ @Override
+- public UserIdentity login(String username, Object credentials, ServletRequest request) {
+- UserIdentity rv = super.login(username, credentials, request);
++ public UserIdentity login(String username, Object credentials) {
++ UserIdentity rv = super.login(username, credentials);
+ if (rv == null)
+ //_log.logAlways(net.i2p.util.Log.WARN, "Console authentication failed, webapp: " + _webapp + ", user: " + username);
+ _log.logAlways(net.i2p.util.Log.WARN, "Console authentication failed, user: " + username);
diff --git a/debian/patches/0002-jetty-compatibility.patch b/debian/patches/0002-jetty-compatibility.patch
index 59f8542d11..b109c9f9e2 100644
--- a/debian/patches/0002-jetty-compatibility.patch
+++ b/debian/patches/0002-jetty-compatibility.patch
@@ -23,39 +23,9 @@
protected void sendDirectory(HttpServletRequest request,
HttpServletResponse response,
Resource resource,
---- a/apps/jetty/java/src/net/i2p/jetty/I2PRequestLog.java
-+++ b/apps/jetty/java/src/net/i2p/jetty/I2PRequestLog.java
-@@ -317,7 +317,7 @@
- buf.append(request.getMethod());
- buf.append(' ');
-
-- request.getUri().writeTo(u8buf);
-+ u8buf.append(request.getHttpURI().toString());
-
- buf.append(' ');
- buf.append(request.getProtocol());
---- a/apps/routerconsole/java/src/net/i2p/router/web/HostCheckHandler.java
-+++ b/apps/routerconsole/java/src/net/i2p/router/web/HostCheckHandler.java
-@@ -15,7 +15,7 @@
- import net.i2p.util.PortMapper;
-
- import org.eclipse.jetty.server.Request;
--import org.eclipse.jetty.servlets.gzip.GzipHandler;
-+import org.eclipse.jetty.server.handler.gzip.GzipHandler;
-
- /**
- * Block certain Host headers to prevent DNS rebinding attacks.
--- a/apps/routerconsole/java/src/net/i2p/router/web/RouterConsoleRunner.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/RouterConsoleRunner.java
-@@ -22,6 +22,7 @@
- import java.util.SortedSet;
- import java.util.StringTokenizer;
- import java.util.concurrent.LinkedBlockingQueue;
-+import javax.servlet.ServletRequest;
-
- import net.i2p.I2PAppContext;
- import net.i2p.app.ClientApp;
-@@ -48,6 +49,7 @@
+@@ -49,6 +50,7 @@
import org.eclipse.jetty.security.HashLoginService;
import org.eclipse.jetty.security.ConstraintMapping;
import org.eclipse.jetty.security.ConstraintSecurityHandler;
@@ -63,7 +33,7 @@
import org.eclipse.jetty.security.authentication.DigestAuthenticator;
import org.eclipse.jetty.server.AbstractConnector;
import org.eclipse.jetty.server.ConnectionFactory;
-@@ -968,6 +970,8 @@
+@@ -972,6 +974,8 @@
} else {
HashLoginService realm = new CustomHashLoginService(JETTY_REALM, context.getContextPath(),
ctx.logManager().getLog(RouterConsoleRunner.class));
@@ -72,7 +42,7 @@
sec.setLoginService(realm);
sec.setAuthenticator(authenticator);
String[] role = new String[] {JETTY_ROLE};
-@@ -975,7 +979,7 @@
+@@ -979,7 +983,7 @@
String user = e.getKey();
String pw = e.getValue();
Credential cred = Credential.getCredential(MD5_CREDENTIAL_TYPE + pw);
@@ -81,7 +51,7 @@
Constraint constraint = new Constraint(user, JETTY_ROLE);
constraint.setAuthenticate(true);
ConstraintMapping cm = new ConstraintMapping();
-@@ -995,7 +999,7 @@
+@@ -999,7 +1003,7 @@
try {
// each char truncated to 8 bytes
String user2 = new String(b2, "ISO-8859-1");
@@ -90,7 +60,7 @@
constraint = new Constraint(user2, JETTY_ROLE);
constraint.setAuthenticate(true);
cm = new ConstraintMapping();
-@@ -1006,7 +1010,7 @@
+@@ -1010,7 +1014,7 @@
// each UTF-8 byte as a char
// this is what chrome does
String user3 = new String(b1, "ISO-8859-1");
@@ -99,17 +69,6 @@
constraint = new Constraint(user3, JETTY_ROLE);
constraint.setAuthenticate(true);
cm = new ConstraintMapping();
-@@ -1081,8 +1085,8 @@
- }
-
- @Override
-- public UserIdentity login(String username, Object credentials) {
-- UserIdentity rv = super.login(username, credentials);
-+ public UserIdentity login(String username, Object credentials, ServletRequest request) {
-+ UserIdentity rv = super.login(username, credentials, request);
- if (rv == null)
- //_log.logAlways(net.i2p.util.Log.WARN, "Console authentication failed, webapp: " + _webapp + ", user: " + username);
- _log.logAlways(net.i2p.util.Log.WARN, "Console authentication failed, user: " + username);
--- a/apps/routerconsole/java/src/net/i2p/router/web/LocaleWebAppHandler.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/LocaleWebAppHandler.java
@@ -85,9 +85,9 @@
@@ -124,48 +83,3 @@
if (servletPath != null && !servletPath.startsWith("*")) {
// success!!
//System.err.println("Servlet is: " + servletPath);
---- a/installer/resources/eepsite/contexts/base-context.xml
-+++ b/installer/resources/eepsite/contexts/base-context.xml
-@@ -42,42 +42,5 @@ to serve static html files and images.
- net.i2p.servlet.I2PDefaultServlet
- /
-
--
--
--
--
--
--
--
--
--
-- minGzipSize
-- 512
--
--
--
-- mimeTypes
-- application/pdf,application/x-javascript,application/xhtml+xml,application/xml,image/svg+xml,text/css,text/html,text/plain
--
--
--
-- /*
--
--
--
--
--
-- REQUEST
--
--
--
--
--
-
-