pub struct WhitelistValidator { /* private fields */ }Expand description
Whitelist validator that restricts SQL to only access allowed tables and columns.
Implementations§
Source§impl WhitelistValidator
impl WhitelistValidator
Sourcepub fn new() -> WhitelistValidator
pub fn new() -> WhitelistValidator
Create an empty whitelist validator (denies all by default).
Sourcepub fn allow_table(self, table: &str) -> WhitelistValidator
pub fn allow_table(self, table: &str) -> WhitelistValidator
Add an allowed table name.
Sourcepub fn allow_tables(self, tables: &[&str]) -> WhitelistValidator
pub fn allow_tables(self, tables: &[&str]) -> WhitelistValidator
Add multiple allowed table names.
Sourcepub fn allow_columns(self, columns: &[&str]) -> WhitelistValidator
pub fn allow_columns(self, columns: &[&str]) -> WhitelistValidator
Set the allowed column name set. After setting, columns referenced in SQL must be in the set.
Sourcepub fn validate_tables(&self, sql: &str) -> Result<(), SqlValidationError>
pub fn validate_tables(&self, sql: &str) -> Result<(), SqlValidationError>
Validate that table names in SQL are within the whitelist.
Extracts all identifiers appearing after FROM / JOIN / INTO / UPDATE via lexical analysis,
and checks whether they are in the allowed_tables set.
Sourcepub fn validate_columns(&self, sql: &str) -> Result<(), SqlValidationError>
pub fn validate_columns(&self, sql: &str) -> Result<(), SqlValidationError>
Validate that column names in SQL are within the whitelist.
Extracts identifiers after SELECT, in WHERE clauses, and after SET as column names for validation. Note: this validation is heuristic and may not cover all column reference scenarios.
Trait Implementations§
Source§impl Clone for WhitelistValidator
impl Clone for WhitelistValidator
Source§fn clone(&self) -> WhitelistValidator
fn clone(&self) -> WhitelistValidator
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for WhitelistValidator
impl Debug for WhitelistValidator
Source§impl Default for WhitelistValidator
impl Default for WhitelistValidator
Source§fn default() -> WhitelistValidator
fn default() -> WhitelistValidator
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for WhitelistValidator
impl RefUnwindSafe for WhitelistValidator
impl Send for WhitelistValidator
impl Sync for WhitelistValidator
impl Unpin for WhitelistValidator
impl UnsafeUnpin for WhitelistValidator
impl UnwindSafe for WhitelistValidator
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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