Update axum-client-ip to 1.1.3

This commit is contained in:
Slatian
2025-10-10 13:57:19 +02:00
parent a4c1b779f2
commit 40a641105c
6 changed files with 30 additions and 72 deletions

79
Cargo.lock generated
View File

@@ -150,12 +150,12 @@ dependencies = [
[[package]]
name = "axum-client-ip"
version = "0.7.0"
version = "1.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dff8ee1869817523c8f91c20bf17fd932707f66c2e7e0b0f811b29a227289562"
checksum = "3f08a543641554404b42acd0d2494df12ca2be034d7b8ee4dbbf7446f940a2ef"
dependencies = [
"axum",
"forwarded-header-value",
"client-ip",
"serde",
]
@@ -372,6 +372,16 @@ version = "0.7.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675"
[[package]]
name = "client-ip"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "31211fc26899744f5b22521fdc971e5f3875991d8880537537470685a0e9552d"
dependencies = [
"forwarded-header-value",
"http",
]
[[package]]
name = "colorchoice"
version = "1.0.4"
@@ -554,7 +564,7 @@ dependencies = [
"serde",
"tera",
"tokio",
"toml 0.8.23",
"toml",
"tower",
"tower-http",
]
@@ -1286,7 +1296,7 @@ dependencies = [
"mime",
"serde",
"tera",
"toml 0.9.8",
"toml",
]
[[package]]
@@ -1297,7 +1307,7 @@ checksum = "ad6270e962ff2af18516dc70519a18af0c772d9f3956eafd3618629560e55312"
dependencies = [
"serde",
"serde_json",
"toml 0.9.8",
"toml",
]
[[package]]
@@ -2081,15 +2091,6 @@ dependencies = [
"serde_core",
]
[[package]]
name = "serde_spanned"
version = "0.6.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3"
dependencies = [
"serde",
]
[[package]]
name = "serde_spanned"
version = "1.0.3"
@@ -2428,18 +2429,6 @@ dependencies = [
"tokio",
]
[[package]]
name = "toml"
version = "0.8.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362"
dependencies = [
"serde",
"serde_spanned 0.6.9",
"toml_datetime 0.6.11",
"toml_edit",
]
[[package]]
name = "toml"
version = "0.9.8"
@@ -2448,22 +2437,13 @@ checksum = "f0dc8b1fb61449e27716ec0e1bdf0f6b8f3e8f6b05391e8497b8b6d7804ea6d8"
dependencies = [
"indexmap",
"serde_core",
"serde_spanned 1.0.3",
"toml_datetime 0.7.3",
"serde_spanned",
"toml_datetime",
"toml_parser",
"toml_writer",
"winnow",
]
[[package]]
name = "toml_datetime"
version = "0.6.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c"
dependencies = [
"serde",
]
[[package]]
name = "toml_datetime"
version = "0.7.3"
@@ -2473,20 +2453,6 @@ dependencies = [
"serde_core",
]
[[package]]
name = "toml_edit"
version = "0.22.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a"
dependencies = [
"indexmap",
"serde",
"serde_spanned 0.6.9",
"toml_datetime 0.6.11",
"toml_write",
"winnow",
]
[[package]]
name = "toml_parser"
version = "1.0.4"
@@ -2496,12 +2462,6 @@ dependencies = [
"winnow",
]
[[package]]
name = "toml_write"
version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801"
[[package]]
name = "toml_writer"
version = "1.0.4"
@@ -3232,9 +3192,6 @@ name = "winnow"
version = "0.7.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf"
dependencies = [
"memchr",
]
[[package]]
name = "winreg"

View File

@@ -10,7 +10,7 @@ authors = ["Slatian <baschdel@disroot.org>"]
lib-humus = { version="0.4", features=["axum-view+cookie"] }
lib-humus-configuration = { version = "0.1.0", featres=["toml"] }
axum-client-ip = "0.7"
axum-client-ip = { version = "1.1.3", features = ["serde", "forwarded-header"] }
axum-extra = { version = "0.10", features = ["cookie", "typed-header"] }
axum = { version = "0.8", features = ["macros"] }
clap = { version = "4.5", features = ["derive"] }
@@ -28,6 +28,6 @@ regex = "1.11"
serde = { version = "1", features = ["derive","rc"] }
tera = "1"
tokio = { version = "1", features = ["macros","signal"] }
toml = "0.8"
toml = "0.9"
tower = "0.5"
tower-http = { version = "0.6", features = ["fs"] }

View File

@@ -28,7 +28,8 @@ This option can be overridden by the `-l <ip-address>:<port>` option on the comm
Configures which http header that contains the real client IP-Address or tells the service to use the IP-Address used to connect to it when in use without a proxy server.
Possible values are best covered by the [documentation for the underlying datatype](https://docs.rs/axum-client-ip/latest/axum_client_ip/enum.SecureClientIpSource.html).
Possible values are best covered by the [documentation for the underlying datatype](https://docs.rs/axum-client-ip/latest/axum_client_ip/enum.ClientIpSource.html).
Note: The possible values stayed compatible even though there was a [major release of the ip address extration library](https://github.com/imbolc/axum-client-ip/releases/tag/v1.0.0).
When using a reverse Proxy `RightmostXForwardedFor` is usually what you want.

View File

@@ -1,4 +1,4 @@
use axum_client_ip::SecureClientIpSource;
use axum_client_ip::ClientIpSource;
use serde::Deserialize;
use std::net::SocketAddr;
@@ -21,7 +21,7 @@ pub struct EchoIpServiceConfig {
#[derive(Deserialize, Clone)]
pub struct ServerConfig {
pub listen_on: SocketAddr,
pub ip_header: SecureClientIpSource,
pub ip_header: ClientIpSource,
pub allow_private_ip_lookup: bool,
}
@@ -51,7 +51,7 @@ impl Default for ServerConfig {
fn default() -> Self {
ServerConfig {
listen_on: "127.0.0.1:3000".parse().unwrap(),
ip_header: SecureClientIpSource::ConnectInfo,
ip_header: ClientIpSource::ConnectInfo,
allow_private_ip_lookup: false,
}
}

View File

@@ -17,7 +17,7 @@ use axum::{
Router,
routing::get,
};
use axum_client_ip::SecureClientIp;
use axum_client_ip::ClientIp;
use axum_extra::headers;
use axum_extra::TypedHeader;
use clap::Parser;
@@ -463,7 +463,7 @@ async fn handle_default_route(
State(arc_state): State<Arc<ServiceSharedState>>,
Extension(settings): Extension<QuerySettings>,
user_agent_header: Option<TypedHeader<headers::UserAgent>>,
SecureClientIp(client_ip): SecureClientIp
ClientIp(client_ip): ClientIp
) -> Response {
let state = Arc::clone(&arc_state);
@@ -589,7 +589,7 @@ async fn handle_ip_route_with_path(
Extension(settings): Extension<QuerySettings>,
State(arc_state): State<Arc<ServiceSharedState>>,
extract::Path(query): extract::Path<String>,
SecureClientIp(client_ip): SecureClientIp
ClientIp(client_ip): ClientIp
) -> Response {
if let Ok(address) = query.parse() {
return handle_ip_request(address, settings, arc_state, &client_ip).await

View File

@@ -1,4 +1,4 @@
use axum_client_ip::SecureClientIp;
use axum_client_ip::ClientIp;
use axum::{
body::Body,
extract::Extension,
@@ -43,7 +43,7 @@ pub fn build_rate_limiting_state(
}
pub async fn rate_limit_middleware(
SecureClientIp(address): SecureClientIp,
ClientIp(address): ClientIp,
Extension(arc_limiter): Extension<Arc<SimpleRateLimiter<IpAddr>>>,
req: Request<Body>,
next: Next