diff options
author | Juan J. Martinez <jjm@usebox.net> | 2021-11-24 19:49:08 +0000 |
---|---|---|
committer | Juan J. Martinez <jjm@usebox.net> | 2021-11-24 19:49:08 +0000 |
commit | 58d2aec7c8e6d1710a8e0a370920bf4096a4ebc4 (patch) | |
tree | 3072cc15a27c7781b6d87b6a7cea5a6cd03d7a34 | |
parent | 5cdf680f9bad61cfff3defd67420c3d56e848036 (diff) | |
download | spacebeans-58d2aec7c8e6d1710a8e0a370920bf4096a4ebc4.tar.gz spacebeans-58d2aec7c8e6d1710a8e0a370920bf4096a4ebc4.zip |
Empty URLs are invalid
Take this into account whe converting the host to lower case.
-rw-r--r-- | server/src/net/usebox/gemini/server/Server.scala | 4 | ||||
-rw-r--r-- | server/test/src/ServerSpec.scala | 7 |
2 files changed, 10 insertions, 1 deletions
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( |