Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGreg Wilkins2015-11-18 04:11:17 +0000
committerGreg Wilkins2015-11-18 04:11:17 +0000
commit0d647fc95aa587354b871725a37eb2ba96f26ca6 (patch)
treed34c10737f544c60f8076edf766866e38a506c78 /jetty-servlet
parentff0d1b4c140af3febb56aeac682d38b51b46416f (diff)
parent12ec44894b59e63be299b0aa79678a4b4cb0c4d0 (diff)
downloadorg.eclipse.jetty.project-0d647fc95aa587354b871725a37eb2ba96f26ca6.tar.gz
org.eclipse.jetty.project-0d647fc95aa587354b871725a37eb2ba96f26ca6.tar.xz
org.eclipse.jetty.project-0d647fc95aa587354b871725a37eb2ba96f26ca6.zip
Merge remote-tracking branch 'origin/jetty-9.3.x'
Diffstat (limited to 'jetty-servlet')
-rw-r--r--jetty-servlet/src/test/java/org/eclipse/jetty/servlet/DefaultServletTest.java41
1 files changed, 35 insertions, 6 deletions
diff --git a/jetty-servlet/src/test/java/org/eclipse/jetty/servlet/DefaultServletTest.java b/jetty-servlet/src/test/java/org/eclipse/jetty/servlet/DefaultServletTest.java
index 174c85f87d..0f740d9da9 100644
--- a/jetty-servlet/src/test/java/org/eclipse/jetty/servlet/DefaultServletTest.java
+++ b/jetty-servlet/src/test/java/org/eclipse/jetty/servlet/DefaultServletTest.java
@@ -25,6 +25,7 @@ import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
+import java.nio.file.Path;
import java.util.EnumSet;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -409,13 +410,18 @@ public class DefaultServletTest
}
@Test
- public void testResourceBase() throws Exception
+ public void testSymLinks() throws Exception
{
testdir.ensureEmpty();
File resBase = testdir.getPathFile("docroot").toFile();
FS.ensureDirExists(resBase);
- File foobar = new File(resBase, "foobar.txt");
- File link = new File(resBase, "link.txt");
+ File dir = new File(resBase,"dir");
+ File dirLink = new File(resBase,"dirlink");
+ File dirRLink = new File(resBase,"dirrlink");
+ FS.ensureDirExists(dir);
+ File foobar = new File(dir, "foobar.txt");
+ File link = new File(dir, "link.txt");
+ File rLink = new File(dir,"rlink.txt");
createFile(foobar, "Foo Bar");
String resBasePath = resBase.getAbsolutePath();
@@ -426,20 +432,43 @@ public class DefaultServletTest
String response;
- response = connector.getResponses("GET /context/foobar.txt HTTP/1.0\r\n\r\n");
+ response = connector.getResponses("GET /context/dir/foobar.txt HTTP/1.0\r\n\r\n");
assertResponseContains("Foo Bar", response);
if (!OS.IS_WINDOWS)
{
context.clearAliasChecks();
+ Files.createSymbolicLink(dirLink.toPath(),dir.toPath());
+ Files.createSymbolicLink(dirRLink.toPath(),new File("dir").toPath());
Files.createSymbolicLink(link.toPath(),foobar.toPath());
- response = connector.getResponses("GET /context/link.txt HTTP/1.0\r\n\r\n");
+ Files.createSymbolicLink(rLink.toPath(),new File("foobar.txt").toPath());
+ response = connector.getResponses("GET /context/dir/link.txt HTTP/1.0\r\n\r\n");
+ assertResponseContains("404", response);
+ response = connector.getResponses("GET /context/dir/rlink.txt HTTP/1.0\r\n\r\n");
+ assertResponseContains("404", response);
+ response = connector.getResponses("GET /context/dirlink/foobar.txt HTTP/1.0\r\n\r\n");
+ assertResponseContains("404", response);
+ response = connector.getResponses("GET /context/dirrlink/foobar.txt HTTP/1.0\r\n\r\n");
+ assertResponseContains("404", response);
+ response = connector.getResponses("GET /context/dirlink/link.txt HTTP/1.0\r\n\r\n");
+ assertResponseContains("404", response);
+ response = connector.getResponses("GET /context/dirrlink/rlink.txt HTTP/1.0\r\n\r\n");
assertResponseContains("404", response);
context.addAliasCheck(new AllowSymLinkAliasChecker());
- response = connector.getResponses("GET /context/link.txt HTTP/1.0\r\n\r\n");
+ response = connector.getResponses("GET /context/dir/link.txt HTTP/1.0\r\n\r\n");
+ assertResponseContains("Foo Bar", response);
+ response = connector.getResponses("GET /context/dir/rlink.txt HTTP/1.0\r\n\r\n");
+ assertResponseContains("Foo Bar", response);
+ response = connector.getResponses("GET /context/dirlink/foobar.txt HTTP/1.0\r\n\r\n");
+ assertResponseContains("Foo Bar", response);
+ response = connector.getResponses("GET /context/dirrlink/foobar.txt HTTP/1.0\r\n\r\n");
+ assertResponseContains("Foo Bar", response);
+ response = connector.getResponses("GET /context/dirlink/link.txt HTTP/1.0\r\n\r\n");
+ assertResponseContains("Foo Bar", response);
+ response = connector.getResponses("GET /context/dirrlink/link.txt HTTP/1.0\r\n\r\n");
assertResponseContains("Foo Bar", response);
}
}

Back to the top