pub struct CsrfProtection { /* private fields */ }Expand description
CSRF protection middleware.
§Spring Security Equivalent
Similar to CsrfFilter in Spring Security.
§Behavior
- For safe methods (GET, HEAD, OPTIONS, TRACE): Generate and store token
- For state-changing methods (POST, PUT, DELETE, PATCH): Validate token
- Token is available in request extensions as
CsrfToken
§Example
ⓘ
use actix_security_core::http::security::csrf::{CsrfProtection, CsrfConfig};
App::new()
.wrap(CsrfProtection::new(CsrfConfig::default()))Implementations§
Source§impl CsrfProtection
impl CsrfProtection
Sourcepub fn new(config: CsrfConfig) -> CsrfProtection
pub fn new(config: CsrfConfig) -> CsrfProtection
Create new CSRF protection with the given configuration.
Sourcepub fn default_config() -> CsrfProtection
pub fn default_config() -> CsrfProtection
Create with default configuration.
Trait Implementations§
Source§impl Clone for CsrfProtection
impl Clone for CsrfProtection
Source§fn clone(&self) -> CsrfProtection
fn clone(&self) -> CsrfProtection
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<S, B> Transform<S, ServiceRequest> for CsrfProtectionwhere
S: Service<ServiceRequest, Response = ServiceResponse<B>, Error = Error> + 'static,
<S as Service<ServiceRequest>>::Future: 'static,
B: 'static,
impl<S, B> Transform<S, ServiceRequest> for CsrfProtectionwhere
S: Service<ServiceRequest, Response = ServiceResponse<B>, Error = Error> + 'static,
<S as Service<ServiceRequest>>::Future: 'static,
B: 'static,
Source§type Response = ServiceResponse<EitherBody<B>>
type Response = ServiceResponse<EitherBody<B>>
Responses produced by the service.
Source§type Transform = CsrfMiddleware<S>
type Transform = CsrfMiddleware<S>
The
TransformService value created by this factorySource§type Future = Ready<Result<<CsrfProtection as Transform<S, ServiceRequest>>::Transform, <CsrfProtection as Transform<S, ServiceRequest>>::InitError>>
type Future = Ready<Result<<CsrfProtection as Transform<S, ServiceRequest>>::Transform, <CsrfProtection as Transform<S, ServiceRequest>>::InitError>>
The future response value.
Source§fn new_transform(
&self,
service: S,
) -> <CsrfProtection as Transform<S, ServiceRequest>>::Future
fn new_transform( &self, service: S, ) -> <CsrfProtection as Transform<S, ServiceRequest>>::Future
Creates and returns a new Transform component, asynchronously
Auto Trait Implementations§
impl Freeze for CsrfProtection
impl !RefUnwindSafe for CsrfProtection
impl Send for CsrfProtection
impl Sync for CsrfProtection
impl Unpin for CsrfProtection
impl !UnwindSafe for CsrfProtection
Blanket Implementations§
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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