Merge remote-tracking branch 'origin/master' into jetty-9.1
Conflicts: jetty-util/src/main/java/org/eclipse/jetty/util/resource/FileResource.java
This commit is contained in:
commit
323572708c
|
@ -108,10 +108,17 @@ public class FileResource extends Resource
|
|||
{
|
||||
File file=new File(uri);
|
||||
_file=file;
|
||||
URI file_uri=_file.toURI();
|
||||
_uri=normalizeURI(_file,uri);
|
||||
|
||||
if (!_uri.equals(_file.toURI()) && !_uri.toString().equals(_file.toURI().toString()))
|
||||
_alias=_file.toURI();
|
||||
if (!_uri.equals(file_uri) && !_uri.toString().equals(file_uri.toString()))
|
||||
{
|
||||
// URI and File URI are different. Is it just an encoding difference?
|
||||
if (!file_uri.toString().equals(URIUtil.decodePath(uri.toString())))
|
||||
_alias=_file.toURI();
|
||||
else
|
||||
_alias=checkAlias(_file);
|
||||
}
|
||||
else
|
||||
_alias=checkAlias(_file);
|
||||
}
|
||||
|
|
|
@ -27,6 +27,7 @@ import java.net.URI;
|
|||
import java.net.URISyntaxException;
|
||||
import java.net.URL;
|
||||
|
||||
import org.eclipse.jetty.toolchain.test.OS;
|
||||
import org.eclipse.jetty.toolchain.test.TestingDir;
|
||||
import org.eclipse.jetty.util.StringUtil;
|
||||
import org.eclipse.jetty.util.UrlEncoded;
|
||||
|
@ -34,6 +35,7 @@ import org.junit.Assert;
|
|||
import org.junit.Ignore;
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
import static org.junit.Assume.assumeTrue;
|
||||
|
||||
public class FileResourceTest
|
||||
{
|
||||
|
@ -53,6 +55,19 @@ public class FileResourceTest
|
|||
String decoded = UrlEncoded.decodeString(raw,0,raw.length(),StringUtil.__UTF8_CHARSET);
|
||||
return new URL(decoded);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSemicolon() throws Exception
|
||||
{
|
||||
assumeTrue(!OS.IS_WINDOWS);
|
||||
createDummyFile("foo;");
|
||||
|
||||
try(Resource base = new FileResource(testdir.getDir());)
|
||||
{
|
||||
Resource res = base.addPath("foo;");
|
||||
Assert.assertNull(res.getAlias());
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testExist_Normal() throws Exception
|
||||
|
@ -60,8 +75,10 @@ public class FileResourceTest
|
|||
createDummyFile("a.jsp");
|
||||
|
||||
URI ref = testdir.getDir().toURI().resolve("a.jsp");
|
||||
FileResource fileres = new FileResource(decode(ref.toURL()));
|
||||
Assert.assertThat("FileResource: " + fileres,fileres.exists(),is(true));
|
||||
try(FileResource fileres = new FileResource(decode(ref.toURL()));)
|
||||
{
|
||||
Assert.assertThat("FileResource: " + fileres,fileres.exists(),is(true));
|
||||
}
|
||||
}
|
||||
|
||||
@Ignore("Cannot get null to be seen by FileResource")
|
||||
|
@ -70,12 +87,17 @@ public class FileResourceTest
|
|||
{
|
||||
createDummyFile("a.jsp");
|
||||
|
||||
try {
|
||||
try
|
||||
{
|
||||
// request with null at end
|
||||
URI ref = testdir.getDir().toURI().resolve("a.jsp%00");
|
||||
FileResource fileres = new FileResource(decode(ref.toURL()));
|
||||
Assert.assertThat("FileResource: " + fileres,fileres.exists(),is(false));
|
||||
} catch(URISyntaxException e) {
|
||||
try(FileResource fileres = new FileResource(decode(ref.toURL()));)
|
||||
{
|
||||
Assert.assertThat("FileResource: " + fileres,fileres.exists(),is(false));
|
||||
}
|
||||
}
|
||||
catch(URISyntaxException e)
|
||||
{
|
||||
// Valid path
|
||||
}
|
||||
}
|
||||
|
@ -86,12 +108,17 @@ public class FileResourceTest
|
|||
{
|
||||
createDummyFile("a.jsp");
|
||||
|
||||
try {
|
||||
try
|
||||
{
|
||||
// request with null and x at end
|
||||
URI ref = testdir.getDir().toURI().resolve("a.jsp%00x");
|
||||
FileResource fileres = new FileResource(decode(ref.toURL()));
|
||||
Assert.assertThat("FileResource: " + fileres,fileres.exists(),is(false));
|
||||
} catch(URISyntaxException e) {
|
||||
try(FileResource fileres = new FileResource(decode(ref.toURL()));)
|
||||
{
|
||||
Assert.assertThat("FileResource: " + fileres,fileres.exists(),is(false));
|
||||
}
|
||||
}
|
||||
catch(URISyntaxException e)
|
||||
{
|
||||
// Valid path
|
||||
}
|
||||
}
|
||||
|
|
|
@ -493,10 +493,10 @@ public class ResourceTest
|
|||
assumeTrue(OS.IS_WINDOWS);
|
||||
|
||||
String path = __userURL.toURI().getPath().replace('/','\\')+"resource.txt";
|
||||
System.err.println(path);
|
||||
//System.err.println(path);
|
||||
|
||||
Resource resource = Resource.newResource(path, false);
|
||||
System.err.println(resource);
|
||||
//System.err.println(resource);
|
||||
assertTrue(resource.exists());
|
||||
|
||||
/*
|
||||
|
|
Loading…
Reference in New Issue