Skip to content

Commit c81479d

Browse files
committed
assets: requires classpath location/prefix fix #1694
1 parent d25b81d commit c81479d

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed

jooby/src/main/java/io/jooby/internal/FolderDiskAssetSource.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,7 @@ public FolderDiskAssetSource(@Nonnull Path location) {
2525
if (resource.startsWith(location)) {
2626
if (Files.isRegularFile(resource)) {
2727
return Asset.create(resource);
28-
}
29-
if (Files.isDirectory(resource)) {
28+
} else if (Files.isDirectory(resource)) {
3029
Path index = resource.resolve("index.html");
3130
if (Files.isRegularFile(index)) {
3231
return Asset.create(index);

tests/src/test/java/io/jooby/Issue1639.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,12 @@ public void shouldNotAccessToClassFromFileSystemAsset(ServerTestRunner runner) {
1515
runner.define(app -> {
1616
app.assets("/static/?*", userdir("src", "test", "resources", "static"));
1717
}).ready(client -> {
18+
client.get("/static/..%252ffiles/fileupload.js", rsp -> {
19+
assertEquals(404, rsp.code());
20+
});
21+
client.get("/static/../files/fileupload.js", rsp -> {
22+
assertEquals(404, rsp.code());
23+
});
1824
client.get("/static/js/index.js", rsp -> {
1925
assertEquals("(function () { console.log('index.js');});", rsp.body().string().trim());
2026
});

0 commit comments

Comments
 (0)