@@ -6,6 +6,7 @@ use anyhow::Context;
66
77use crate :: app:: AppState ;
88use crate :: auth:: AuthCheck ;
9+ use crate :: middleware:: real_ip:: RealIp ;
910use crate :: models:: token:: { CrateScope , EndpointScope } ;
1011use crate :: util:: errors:: { AppResult , bad_request, custom} ;
1112use crate :: util:: token:: PlainToken ;
@@ -20,8 +21,8 @@ use diesel::dsl::{IntervalDsl, now};
2021use diesel:: prelude:: * ;
2122use diesel:: sql_types:: Timestamptz ;
2223use diesel_async:: RunQueryDsl ;
23- use http:: StatusCode ;
2424use http:: request:: Parts ;
25+ use http:: { StatusCode , header} ;
2526use minijinja:: context;
2627use secrecy:: ExposeSecret ;
2728use serde:: { Deserialize , Serialize } ;
@@ -129,7 +130,16 @@ pub async fn create_api_token(
129130
130131 // Check if token creation is disabled
131132 if let Some ( disable_message) = & app. config . disable_token_creation {
133+ let client_ip = parts. extensions . get :: < RealIp > ( ) . map ( |ip| ip. to_string ( ) ) ;
134+ let client_ip = client_ip. as_deref ( ) . unwrap_or ( "unknown" ) ;
135+
136+ let mut headers = parts. headers . clone ( ) ;
137+ headers. remove ( header:: AUTHORIZATION ) ;
138+ headers. remove ( header:: COOKIE ) ;
139+
132140 warn ! (
141+ network. client. ip = client_ip,
142+ http. headers = ?headers,
133143 "Blocked token creation for user `{}` (id: {}) due to disabled flag (token name: `{}`)" ,
134144 user. gh_login, user. id, new. api_token. name
135145 ) ;
0 commit comments