Skip to main content

HttpAllowList

Struct HttpAllowList 

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

Allow only requests to hosts matching the given patterns.

Matching is performed against the host portion of the URL only. The URL is parsed to extract the host (stripping scheme, userinfo, port, path, query, and fragment) before matching.

Patterns are matched as exact or suffix of the host — e.g. "example.com" matches https://example.com/path and https://api.example.com/path but does not match https://notexample.com/path or https://evil.com/?ref=example.com.

§Security

Previous versions matched against the full URL string, which allowed bypass via query parameters or path segments. This implementation extracts the host and matches only against it.

use mlua_batteries::policy::HttpAllowList;

let policy = HttpAllowList::new(["api.example.com", "httpbin.org"]);

Implementations§

Source§

impl HttpAllowList

Source

pub fn new<I, S>(hosts: I) -> Self
where I: IntoIterator<Item = S>, S: Into<String>,

Create an allow-list from host patterns.

Trait Implementations§

Source§

impl Debug for HttpAllowList

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl HttpPolicy for HttpAllowList

Source§

fn check_url(&self, url: &str, method: &str) -> Result<(), PolicyError>

Validate url for method (e.g. “GET”, “POST”). Read more
Source§

fn policy_name(&self) -> &'static str

Human-readable name for this policy, used in Debug output. Read more

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, 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> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
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> MaybeSend for T