Skip to main content

CrsModule

Struct CrsModule 

Source
pub struct CrsModule { /* private fields */ }
Expand description

A WafModule evaluating imported CRS/ModSecurity rules. Build with [CrsModule::from_str] (one source) — the proxy loader concatenates the configured files in include order and resolves the boot report.

Implementations§

Source§

impl CrsModule

Source

pub fn from_source(source: &str) -> Self

Parse + compile one seclang source (e.g. the configured files concatenated in include order).

Source

pub fn from_parsed(parsed: ParsedRuleset) -> Self

Compile an already-parsed ruleset (rules that fail to compile join skipped).

Source

pub fn loaded_count(&self) -> usize

Number of rules successfully loaded (fast + slow).

Source

pub fn skipped(&self) -> &[SkippedRule]

Rules that could not be loaded into the v1 subset (with reasons).

Source

pub fn report(&self) -> String

One-line boot summary; the proxy logs this so the coverage gap is explicit (D3=A).

Trait Implementations§

Source§

impl WafModule for CrsModule

Source§

fn structural(&self) -> bool

CRS rules carry external patterns the native ContentPrefilter does not know about, so the fast-path cannot prove them inert → this module must run on every request.

Source§

fn id(&self) -> &str

Source§

fn phase(&self) -> Phase

Source§

fn init(&mut self, _cfg: &Config)

Called once at startup; compile/init rules here, never in inspect.
Source§

fn inspect(&self, ctx: &RequestContext) -> Decision

Read-only access to context; pipeline owns mutation of score.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more