Add logging of IP for failed login attempts for integration with fail2ban

This commit is contained in:
notplants
2025-06-18 15:32:45 -04:00
parent 9930d690ab
commit 9b67d7ae65

View File

@ -1,4 +1,4 @@
use log::debug; use log::{debug, info};
use maud::{html, PreEscaped}; use maud::{html, PreEscaped};
use peach_lib::password_utils; use peach_lib::password_utils;
use rouille::{post_input, try_or_400, Request, Response}; use rouille::{post_input, try_or_400, Request, Response};
@ -73,7 +73,11 @@ pub fn handle_form(request: &Request, session_data: &mut Option<SessionData>) ->
Response::redirect_303("/") Response::redirect_303("/")
} }
Err(err) => { Err(err) => {
debug!("Unsuccessful login attempt"); let x_forwarded_for = request.header("X-Forwarded-For");
let real_ip = x_forwarded_for
.and_then(|ips| ips.split(':').next().and_then(|ip| Some(ip.to_string())))
.unwrap_or_else(|| request.remote_addr().ip().to_string());
info!("Unsuccessful login attempt from {:?}", real_ip);
let err_msg = format!("Invalid password: {}", err); let err_msg = format!("Invalid password: {}", err);
let (flash_name, flash_msg) = ( let (flash_name, flash_msg) = (
"error".to_string(), "error".to_string(),