From 58d2aec7c8e6d1710a8e0a370920bf4096a4ebc4 Mon Sep 17 00:00:00 2001 From: "Juan J. Martinez" Date: Wed, 24 Nov 2021 19:49:08 +0000 Subject: Empty URLs are invalid Take this into account whe converting the host to lower case. --- server/src/net/usebox/gemini/server/Server.scala | 4 +++- server/test/src/ServerSpec.scala | 7 +++++++ 2 files changed, 10 insertions(+), 1 deletion(-) (limited to 'server') diff --git a/server/src/net/usebox/gemini/server/Server.scala b/server/src/net/usebox/gemini/server/Server.scala index ce840df..5b1692f 100644 --- a/server/src/net/usebox/gemini/server/Server.scala +++ b/server/src/net/usebox/gemini/server/Server.scala @@ -72,7 +72,9 @@ case class Server(conf: ServiceConf) { uri.getScheme(), uri.getHost(), uri.getPath().decode(), - vHosts.find(_.host == uri.getHost().toLowerCase) + vHosts.find(vh => + Some(vh.host) == Option(uri.getHost()).map(_.toLowerCase) + ) ) match { case (null, _, _, _) => logger.debug(s"no scheme") diff --git a/server/test/src/ServerSpec.scala b/server/test/src/ServerSpec.scala index c9a6947..dd6bf20 100644 --- a/server/test/src/ServerSpec.scala +++ b/server/test/src/ServerSpec.scala @@ -171,6 +171,13 @@ class ServerSpec extends AnyFlatSpec with Matchers { ) } + it should "return bad request on empty URLs" in { + Server(TestData.conf) + .handleReq("", "127.0.0.1") should be( + a[BadRequest] + ) + } + it should "return bad request when the path is out of root dir" in { Server(TestData.conf) .handleReq("gemini://localhost/../../", "127.0.0.1") should be( -- cgit v1.2.3