summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLi Haoyi <haoyi.sg@gmail.com>2018-08-25 17:49:39 +0800
committerLi Haoyi <haoyi.sg@gmail.com>2018-08-25 17:49:39 +0800
commitece16bb6984f026f3244f8ba9b26a7f6c72fd8bf (patch)
treedf8237cc53188e786f1a802c0b4d89f326154b00
parent8304925cf035c23ea6314d75de3516223e84ae8d (diff)
downloadcask-ece16bb6984f026f3244f8ba9b26a7f6c72fd8bf.tar.gz
cask-ece16bb6984f026f3244f8ba9b26a7f6c72fd8bf.tar.bz2
cask-ece16bb6984f026f3244f8ba9b26a7f6c72fd8bf.zip
0.1.50.1.5
-rw-r--r--cask/src/cask/endpoints/StaticEndpoints.scala6
-rw-r--r--example/staticFiles/app/src/StaticFiles.scala3
-rw-r--r--example/staticFiles/app/test/src/ExampleTests.scala5
3 files changed, 12 insertions, 2 deletions
diff --git a/cask/src/cask/endpoints/StaticEndpoints.scala b/cask/src/cask/endpoints/StaticEndpoints.scala
index 15eae0d..876683e 100644
--- a/cask/src/cask/endpoints/StaticEndpoints.scala
+++ b/cask/src/cask/endpoints/StaticEndpoints.scala
@@ -10,7 +10,9 @@ class staticFiles(val path: String) extends Endpoint{
type InputParser[T] = QueryParamReader[T]
override def subpath = true
def wrapFunction(ctx: Request, delegate: Delegate): Returned = {
- delegate(Map()).map(t => cask.model.StaticFile(t + "/" + ctx.remainingPathSegments.mkString("/")))
+ delegate(Map()).map(t =>
+ cask.model.StaticFile(t + "/" + ctx.remainingPathSegments.filter(s => s != "." && s != "..").mkString("/"))
+ )
}
def wrapPathSegment(s: String): Input = Seq(s)
@@ -24,7 +26,7 @@ class staticResources(val path: String, resourceRoot: ClassLoader = getClass.get
override def subpath = true
def wrapFunction(ctx: Request, delegate: Delegate): Returned = {
delegate(Map()).map(t =>
- cask.model.StaticResource(t + "/" + ctx.remainingPathSegments.mkString("/"), resourceRoot)
+ cask.model.StaticResource(t + "/" + ctx.remainingPathSegments.filter(s => s != "." && s != "..").mkString("/"), resourceRoot)
)
}
diff --git a/example/staticFiles/app/src/StaticFiles.scala b/example/staticFiles/app/src/StaticFiles.scala
index e47f0a1..00d1ace 100644
--- a/example/staticFiles/app/src/StaticFiles.scala
+++ b/example/staticFiles/app/src/StaticFiles.scala
@@ -11,5 +11,8 @@ object StaticFiles extends cask.MainRoutes{
@cask.staticResources("/static/resource")
def staticResourceRoutes() = "cask"
+ @cask.staticResources("/static/resource2")
+ def staticResourceRoutes2() = "."
+
initialize()
}
diff --git a/example/staticFiles/app/test/src/ExampleTests.scala b/example/staticFiles/app/test/src/ExampleTests.scala
index c60f443..ab67bcf 100644
--- a/example/staticFiles/app/test/src/ExampleTests.scala
+++ b/example/staticFiles/app/test/src/ExampleTests.scala
@@ -24,6 +24,11 @@ object ExampleTests extends TestSuite{
requests.get(s"$host/static/resource/example.txt").text() ==>
"the quick brown fox jumps over the lazy dog"
+
+ requests.get(s"$host/static/resource2/cask/example.txt").text() ==>
+ "the quick brown fox jumps over the lazy dog"
+
+ requests.get(s"$host/static/file/../../../build.sc").statusCode ==> 404
}
}