|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
diff --git org.eclipse.m2e.tests.common/META-INF/MANIFEST.MF org.eclipse.m2e.tests.common/META-INF/MANIFEST.MF
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
index a1500e2..de30383 100644
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
--- org.eclipse.m2e.tests.common/META-INF/MANIFEST.MF
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+++ org.eclipse.m2e.tests.common/META-INF/MANIFEST.MF
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
@@ -11,14 +11,17 @@ Require-Bundle: org.junit;bundle-version="4.0.0",
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
org.eclipse.core.runtime,
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
org.eclipse.jdt.core,
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
org.eclipse.debug.core,
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
- org.eclipse.core.resources
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+ org.eclipse.core.resources,
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+ org.eclipse.jetty.server,
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+ org.eclipse.jetty.util,
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+ org.eclipse.jetty.http,
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+ org.eclipse.jetty.security,
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+ org.eclipse.jetty.io
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
Bundle-ActivationPolicy: lazy
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
-Bundle-ClassPath: .,
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
- jars/javax.servlet_2.5.0.v201103041518.jar,
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
- jars/org.mortbay.jetty.server_6.1.23.v201012071420.jar,
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
- jars/org.mortbay.jetty.util_6.1.23.v201012071420.jar
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
Bundle-Vendor: %Bundle-Vendor
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
MavenArtifact-GroupId: org.eclipse.m2e
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
MavenArtifact-ArtifactId: org.eclipse.m2e.tests.common
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
Export-Package: org.eclipse.m2e.tests.common;x-internal:=true
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+Import-Package: javax.servlet;version="3.1.0",
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+ javax.servlet.http;version="3.1.0"
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
diff --git org.eclipse.m2e.tests.common/build.properties org.eclipse.m2e.tests.common/build.properties
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
index 51bead7..3873d38 100644
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
--- org.eclipse.m2e.tests.common/build.properties
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+++ org.eclipse.m2e.tests.common/build.properties
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
@@ -14,6 +14,5 @@ output.. = target/classes/
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
bin.includes = META-INF/,\
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
.,\
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
about.html,\
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
- jars/,\
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
OSGI-INF/
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
src.includes = about.html
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
diff --git org.eclipse.m2e.tests.common/src/org/eclipse/m2e/tests/common/HttpServer.java org.eclipse.m2e.tests.common/src/org/eclipse/m2e/tests/common/HttpServer.java
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
index 5851e7e..4205804 100644
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
--- org.eclipse.m2e.tests.common/src/org/eclipse/m2e/tests/common/HttpServer.java
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+++ org.eclipse.m2e.tests.common/src/org/eclipse/m2e/tests/common/HttpServer.java
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
@@ -11,6 +11,8 @@
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
package org.eclipse.m2e.tests.common;
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+import static org.junit.Assert.fail;
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
import java.io.File;
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
import java.io.FileInputStream;
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
import java.io.FileOutputStream;
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
@@ -23,28 +25,36 @@ import java.util.HashMap;
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
import java.util.HashSet;
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
import java.util.List;
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
import java.util.Map;
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+import java.util.Properties;
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
import java.util.TreeMap;
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
import javax.servlet.http.HttpServletRequest;
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
import javax.servlet.http.HttpServletResponse;
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
-import org.mortbay.jetty.Connector;
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
-import org.mortbay.jetty.Handler;
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
-import org.mortbay.jetty.HttpMethods;
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
-import org.mortbay.jetty.Request;
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
-import org.mortbay.jetty.Server;
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
-import org.mortbay.jetty.handler.AbstractHandler;
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
-import org.mortbay.jetty.handler.DefaultHandler;
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
-import org.mortbay.jetty.handler.HandlerList;
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
-import org.mortbay.jetty.nio.SelectChannelConnector;
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
-import org.mortbay.jetty.security.B64Code;
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
-import org.mortbay.jetty.security.Constraint;
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
-import org.mortbay.jetty.security.ConstraintMapping;
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
-import org.mortbay.jetty.security.HashUserRealm;
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
-import org.mortbay.jetty.security.SecurityHandler;
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
-import org.mortbay.jetty.security.SslSocketConnector;
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
-import org.mortbay.util.IO;
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
-import org.mortbay.util.URIUtil;
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+import org.eclipse.jetty.http.HttpMethod;
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+import org.eclipse.jetty.http.HttpVersion;
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+import org.eclipse.jetty.security.ConstraintMapping;
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+import org.eclipse.jetty.security.ConstraintSecurityHandler;
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+import org.eclipse.jetty.security.HashLoginService;
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+import org.eclipse.jetty.security.SecurityHandler;
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+import org.eclipse.jetty.security.authentication.BasicAuthenticator;
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+import org.eclipse.jetty.server.Connector;
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+import org.eclipse.jetty.server.Handler;
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+import org.eclipse.jetty.server.HttpConfiguration;
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+import org.eclipse.jetty.server.HttpConnectionFactory;
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+import org.eclipse.jetty.server.NetworkConnector;
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+import org.eclipse.jetty.server.Request;
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+import org.eclipse.jetty.server.Server;
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+import org.eclipse.jetty.server.ServerConnector;
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+import org.eclipse.jetty.server.SslConnectionFactory;
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+import org.eclipse.jetty.server.handler.AbstractHandler;
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+import org.eclipse.jetty.server.handler.DefaultHandler;
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+import org.eclipse.jetty.server.handler.HandlerList;
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+import org.eclipse.jetty.util.B64Code;
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+import org.eclipse.jetty.util.IO;
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+import org.eclipse.jetty.util.URIUtil;
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+import org.eclipse.jetty.util.security.Constraint;
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+import org.eclipse.jetty.util.ssl.SslContextFactory;
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
/**
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
@@ -101,24 +111,29 @@ public class HttpServer {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
private String storePassword;
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
protected Connector newHttpConnector() {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
- SelectChannelConnector connector = new SelectChannelConnector();
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+ HttpConfiguration config = new HttpConfiguration();
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+ config.setSecurePort(httpsPort);
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+ ServerConnector connector = new ServerConnector(server, new HttpConnectionFactory(config));
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
connector.setPort(httpPort);
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
return connector;
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
}
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
protected Connector newHttpsConnector() {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
- SslSocketConnector connector = new SslSocketConnector();
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
- connector.setPort(httpsPort);
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
- connector.setKeystore(new File(keyStoreLocation).getAbsolutePath());
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
- connector.setPassword(storePassword);
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
- connector.setKeyPassword(keyStorePassword);
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+ SslContextFactory sslContextFactory = new SslContextFactory();
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+ sslContextFactory.setKeyManagerPassword(storePassword);
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+ sslContextFactory.setKeyStorePath(new File(keyStoreLocation).getAbsolutePath());
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+ sslContextFactory.setKeyStorePassword(keyStorePassword);
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
if(trustStoreLocation != null && !trustStoreLocation.equals("")) {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
- connector.setTruststore(new File(trustStoreLocation).getAbsolutePath());
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+ sslContextFactory.setTrustStorePath(new File(trustStoreLocation).getAbsolutePath());
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
}
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
if(trustStorePassword != null && !trustStoreLocation.equals("")) {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
- connector.setTrustPassword(trustStorePassword);
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+ sslContextFactory.setTrustStorePassword(trustStorePassword);
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
}
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
- connector.setNeedClientAuth(needClientAuth);
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+ sslContextFactory.setNeedClientAuth(needClientAuth);
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+ ServerConnector connector = new ServerConnector(server,
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+ new SslConnectionFactory(sslContextFactory, HttpVersion.HTTP_1_1.asString()));
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+ connector.setPort(httpsPort);
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
return connector;
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
}
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
@@ -142,7 +157,7 @@ public class HttpServer {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
*/
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
public int getHttpPort() {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
if(httpPort >= 0 && server != null && server.isRunning()) {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
- return server.getConnectors()[0].getLocalPort();
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+ return ((NetworkConnector) server.getConnectors()[0]).getLocalPort();
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
}
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
return httpPort;
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
}
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
@@ -176,7 +191,7 @@ public class HttpServer {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
*/
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
public int getHttpsPort() {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
if(httpsPort >= 0 && server != null && server.isRunning()) {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
- return server.getConnectors()[(httpPort < 0) ? 0 : 1].getLocalPort();
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+ return ((NetworkConnector) server.getConnectors()[(httpPort < 0) ? 0 : 1]).getLocalPort();
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
}
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
return httpsPort;
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
}
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
@@ -260,12 +275,13 @@ public class HttpServer {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
protected Handler newProxyHandler() {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
return new AbstractHandler() {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
- public void handle(String target, HttpServletRequest request, HttpServletResponse response, int dispatch)
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+ @Override
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+ public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response)
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
throws IOException {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
String auth = request.getHeader("Proxy-Authorization");
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
if(auth != null) {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
auth = auth.substring(auth.indexOf(' ') + 1).trim();
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
- auth = B64Code.decode(auth);
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+ auth = new String(B64Code.decode(auth));
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
}
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
if(!(proxyUsername + ':' + proxyPassword).equals(auth)) {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
@@ -293,8 +309,8 @@ public class HttpServer {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
protected Handler newSslRedirectHandler() {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
return new AbstractHandler() {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
-
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
- public void handle(String target, HttpServletRequest request, HttpServletResponse response, int dispatch) {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+ @Override
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+ public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
int httpsPort = getHttpsPort();
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
if(!((Request) request).isHandled() && request.getServerPort() != httpsPort) {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
String url = "https://" + request.getServerName() + ":" + httpsPort + request.getRequestURI();
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
@@ -336,7 +352,7 @@ public class HttpServer {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
return this;
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
}
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
- protected Handler newSecurityHandler() {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+ protected SecurityHandler newSecurityHandler() {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
List<ConstraintMapping> mappings = new ArrayList<ConstraintMapping>();
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
for(String pathSpec : securedRealms.keySet()) {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
@@ -354,22 +370,32 @@ public class HttpServer {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
mappings.add(constraintMapping);
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
}
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
- HashUserRealm userRealm = new HashUserRealm("TestRealm");
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+ Properties p = new Properties();
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
for(String username : userPasswords.keySet()) {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
String password = userPasswords.get(username);
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
String[] roles = userRoles.get(username);
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
- userRealm.put(username, password);
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
- if(roles != null) {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
- for(String role : roles) {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
- userRealm.addUserToRole(username, role);
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
- }
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+ StringBuilder entry = new StringBuilder(password);
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+ for(String role : roles) {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+ entry.append(",");
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+ entry.append(role);
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
}
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+ p.put(username, entry.toString());
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+ }
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+ File propFile = new File("target/users.properties");
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+ try (FileOutputStream in = new FileOutputStream(propFile)) {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+ p.store(in, null);
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+ } catch(IOException ex) {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+ fail("Unable to create users properties file");
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
}
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
- SecurityHandler securityHandler = new SecurityHandler();
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
- securityHandler.setUserRealm(userRealm);
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
- securityHandler.setConstraintMappings(mappings.toArray(new ConstraintMapping[mappings.size()]));
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+ HashLoginService userRealm = new HashLoginService("TestRealm", "target/users.properties");
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+ server.addBean(userRealm);
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+ ConstraintSecurityHandler securityHandler = new ConstraintSecurityHandler();
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+ securityHandler.setAuthenticator(new BasicAuthenticator());
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+ securityHandler.setLoginService(userRealm);
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+ securityHandler.setConstraintMappings(mappings);
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
return securityHandler;
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
}
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
@@ -470,8 +496,8 @@ public class HttpServer {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
protected Handler newSleepHandler(final long millis) {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
return new AbstractHandler() {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
-
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
- public void handle(String target, HttpServletRequest request, HttpServletResponse response, int dispatch) {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+ @Override
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+ public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
if(millis >= 0) {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
try {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
Thread.sleep(millis);
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
@@ -505,6 +531,8 @@ public class HttpServer {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
recordedRequests.clear();
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+ server = new Server();
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
List<Connector> connectors = new ArrayList<Connector>();
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
if(httpPort >= 0) {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
connectors.add(newHttpConnector());
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
@@ -526,15 +554,20 @@ public class HttpServer {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
if(proxyUsername != null && proxyPassword != null) {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
handlerList.addHandler(newProxyHandler());
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
}
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+ SecurityHandler security = null;
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
if(!securedRealms.isEmpty()) {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
- handlerList.addHandler(newSecurityHandler());
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+ security = newSecurityHandler();
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+ handlerList.addHandler(security);
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
}
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
if(!resourceDirs.isEmpty()) {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
- handlerList.addHandler(newResourceHandler());
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+ if(security != null) {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+ security.setHandler(newResourceHandler());
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+ } else {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+ handlerList.addHandler(newResourceHandler());
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+ }
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
}
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
handlerList.addHandler(new DefaultHandler());
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
- server = new Server(0);
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
server.setHandler(handlerList);
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
server.setConnectors(connectors.toArray(new Connector[connectors.size()]));
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
server.start();
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
@@ -556,7 +589,7 @@ public class HttpServer {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
for(int i = 200; i > 0; i-- ) {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
badConnectors.clear();
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
for(Connector connector : server.getConnectors()) {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
- if(connector.getLocalPort() < 0) {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+ if(((NetworkConnector) connector).getLocalPort() < 0) {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
badConnectors.add(connector);
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
}
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
}
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
@@ -620,8 +653,8 @@ public class HttpServer {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
}
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
class ResHandler extends AbstractHandler {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
-
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
- public void handle(String target, HttpServletRequest request, HttpServletResponse response, int dispatch)
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+ @Override
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+ public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response)
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
throws IOException {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
String uri = request.getRequestURI();
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
@@ -631,14 +664,14 @@ public class HttpServer {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
File basedir = resourceDirs.get(contextRoot);
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
File file = new File(basedir, path);
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
- if(HttpMethods.HEAD.equals(request.getMethod())) {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+ if(HttpMethod.HEAD.equals(request.getMethod())) {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
if(file.exists())
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
response.setStatus(HttpServletResponse.SC_OK);
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
else
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
response.setStatus(HttpServletResponse.SC_NOT_FOUND);
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
((Request) request).setHandled(true);
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
return;
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
- } else if(HttpMethods.PUT.equals(request.getMethod()) || HttpMethods.POST.equals(request.getMethod())) {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+ } else if(HttpMethod.PUT.equals(request.getMethod()) || HttpMethod.POST.equals(request.getMethod())) {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
file.getParentFile().mkdirs();
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
FileOutputStream os = new FileOutputStream(file);
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
try {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
@@ -704,8 +737,8 @@ public class HttpServer {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
}
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
class RecordingHandler extends AbstractHandler {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
-
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
- public void handle(String target, HttpServletRequest request, HttpServletResponse response, int dispatch) {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+ @Override
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
+ public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) {
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
String uri = request.getRequestURI();
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
|
|
![](https://seccdn.libravatar.org/avatar/60f3bc9cb3cb070fcee9701bf8296fd6eafd560b3f73fabcf4595090f407cc31?s=16&d=retro) |
7bd2447 |
for(String pattern : recordedPatterns) {
|