commit 233d23a527f6eebd29324618e1c53de574256f39
parent 458a238c3810f0af2829bfc8878240014fd11504
Author: Miroslav Prasil <miroslav@prasil.info>
Date: Wed, 18 Jul 2018 11:54:33 +0100
Return 404 in case the path doesn't match instead of 500
Diffstat:
1 file changed, 13 insertions(+), 8 deletions(-)
diff --git a/src/api/web.rs b/src/api/web.rs
@@ -4,7 +4,7 @@ use std::path::{Path, PathBuf};
use rocket::request::Request;
use rocket::response::{self, NamedFile, Responder};
use rocket::response::content::Content;
-use rocket::http::ContentType;
+use rocket::http::{ContentType, Status};
use rocket::Route;
use rocket_contrib::{Json, Value};
@@ -49,14 +49,19 @@ struct WebHeaders<R>(R);
impl<'r, R: Responder<'r>> Responder<'r> for WebHeaders<R> {
fn respond_to(self, req: &Request) -> response::Result<'r> {
- let mut res = self.0.respond_to(req)?;
+ match self.0.respond_to(req) {
+ Ok(mut res) => {
+ res.set_raw_header("Referrer-Policy", "same-origin");
+ res.set_raw_header("X-Frame-Options", "SAMEORIGIN");
+ res.set_raw_header("X-Content-Type-Options", "nosniff");
+ res.set_raw_header("X-XSS-Protection", "1; mode=block");
- res.set_raw_header("Referrer-Policy", "same-origin");
- res.set_raw_header("X-Frame-Options", "SAMEORIGIN");
- res.set_raw_header("X-Content-Type-Options", "nosniff");
- res.set_raw_header("X-XSS-Protection", "1; mode=block");
-
- Ok(res)
+ Ok(res)
+ },
+ Err(_) => {
+ Err(Status::NotFound)
+ }
+ }
}
}