commit a0a08c4c5af06df321db90009f0d02643da51a32
parent 4309df833406022ce410acb91092a3946bfc9ed0
Author: Daniel GarcĂa <dani-garcia@users.noreply.github.com>
Date: Tue, 8 Jan 2019 16:16:58 +0100
Include IP in invalid admin token error
Diffstat:
2 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/src/api/admin.rs b/src/api/admin.rs
@@ -91,8 +91,15 @@ impl<'a, 'r> FromRequest<'a, 'r> for AdminToken {
// Option 2a: Send it to admin email, like upstream
// Option 2b: Print in console or save to data dir, so admin can check
+ use crate::auth::ClientIp;
+
+ let ip = match request.guard::<ClientIp>() {
+ Outcome::Success(ip) => ip,
+ _ => err_handler!("Error getting Client IP"),
+ };
+
if access_token != config_token {
- err_handler!("Invalid admin token")
+ err_handler!("Invalid admin token", format!("IP: {}.", ip.ip))
}
Outcome::Success(AdminToken {})
diff --git a/src/error.rs b/src/error.rs
@@ -163,7 +163,11 @@ macro_rules! err_json {
#[macro_export]
macro_rules! err_handler {
($expr:expr) => {{
- error!("Unauthorized Error: {:#?}", $expr);
+ error!("Unauthorized Error: {}", $expr);
return rocket::Outcome::Failure((rocket::http::Status::Unauthorized, $expr));
}};
+ ($usr_msg:expr, $log_value:expr) => {{
+ error!("Unauthorized Error: {}. {}", $usr_msg, $log_value);
+ return rocket::Outcome::Failure((rocket::http::Status::Unauthorized, $usr_msg));
+ }};
}