pub struct SecurityManager { /* private fields */ }Expand description
Security manager for handling rate limiting, DoS protection, and IP blacklisting
Implementations§
Source§impl SecurityManager
impl SecurityManager
Sourcepub fn with_config(
rate_limit_config: RateLimitConfig,
dos_config: DosProtectionConfig,
blacklist_config: IpBlacklistConfig,
) -> Self
pub fn with_config( rate_limit_config: RateLimitConfig, dos_config: DosProtectionConfig, blacklist_config: IpBlacklistConfig, ) -> Self
Create a new security manager with custom configuration
Sourcepub async fn check_rate_limit(&self, ip: IpAddr) -> bool
pub async fn check_rate_limit(&self, ip: IpAddr) -> bool
Check if IP is rate limited
Sourcepub async fn check_dos_protection(&self, ip: IpAddr) -> bool
pub async fn check_dos_protection(&self, ip: IpAddr) -> bool
Check for DoS attacks
Sourcepub async fn check_blacklist(&self, ip: IpAddr) -> bool
pub async fn check_blacklist(&self, ip: IpAddr) -> bool
Check if IP is blacklisted
Sourcepub async fn record_failure(&self, ip: IpAddr)
pub async fn record_failure(&self, ip: IpAddr)
Record a failed authentication attempt
Sourcepub async fn add_to_blacklist(&self, ip: IpAddr)
pub async fn add_to_blacklist(&self, ip: IpAddr)
Manually add IP to blacklist
Sourcepub async fn remove_from_blacklist(&self, ip: IpAddr)
pub async fn remove_from_blacklist(&self, ip: IpAddr)
Remove IP from manual blacklist
Sourcepub async fn get_stats(&self) -> SecurityStats
pub async fn get_stats(&self) -> SecurityStats
Get security statistics
Trait Implementations§
Auto Trait Implementations§
impl Freeze for SecurityManager
impl !RefUnwindSafe for SecurityManager
impl Send for SecurityManager
impl Sync for SecurityManager
impl Unpin for SecurityManager
impl UnsafeUnpin for SecurityManager
impl !UnwindSafe for SecurityManager
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more