pub struct IpFilterConfig { /* private fields */ }Expand description
Configuration for the IP filter middleware.
Build with IpFilterConfig::new() and chain methods to add CIDRs, set the filter mode,
rejection status, and IP source. Then pass to IpFilterLayer::new().
§Examples
use http::StatusCode;
use rune_axum_ipfilter::{FilterMode, IpFilterConfig};
// Block two specific ranges
let config = IpFilterConfig::new()
.mode(FilterMode::Blocklist)
.cidr("10.0.0.0/8")
.cidr("172.16.0.0/12");Implementations§
Source§impl IpFilterConfig
impl IpFilterConfig
Sourcepub fn new() -> IpFilterConfig
pub fn new() -> IpFilterConfig
Creates an IpFilterConfig with defaults: blocklist mode, empty CIDR list,
403 Forbidden rejection, X-Forwarded-For source.
Sourcepub fn cidr(self, cidr: &str) -> IpFilterConfig
pub fn cidr(self, cidr: &str) -> IpFilterConfig
Adds a CIDR range to the filter list.
Both IPv4 ("192.168.1.0/24") and IPv6 ("2001:db8::/32") notation are accepted.
Call multiple times to add multiple ranges.
§Panics
Panics at startup if cidr is not valid CIDR notation.
§Examples
use rune_axum_ipfilter::IpFilterConfig;
let config = IpFilterConfig::new()
.cidr("10.0.0.0/8")
.cidr("192.168.0.0/16")
.cidr("2001:db8::/32");Sourcepub fn mode(self, mode: FilterMode) -> IpFilterConfig
pub fn mode(self, mode: FilterMode) -> IpFilterConfig
Sets whether the CIDR list is an allowlist or a blocklist.
Defaults to FilterMode::Blocklist.
Sourcepub fn status(self, status: StatusCode) -> IpFilterConfig
pub fn status(self, status: StatusCode) -> IpFilterConfig
Sets the HTTP status code returned when a request is rejected.
Defaults to 403 Forbidden.
Sourcepub fn source(self, source: IpSource) -> IpFilterConfig
pub fn source(self, source: IpSource) -> IpFilterConfig
Sets the strategy used to extract the client IP address.
Defaults to IpSource::XForwardedFor.
Trait Implementations§
Source§impl Clone for IpFilterConfig
impl Clone for IpFilterConfig
Source§fn clone(&self) -> IpFilterConfig
fn clone(&self) -> IpFilterConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more