Skip to main content

PathBufWrap

Struct PathBufWrap 

Source
pub struct PathBufWrap(/* private fields */);
Expand description

Secure Path Traversal Guard

This struct parses a request-uri PathBuf

Implementations§

Source§

impl PathBufWrap

Source

pub fn parse_unprocessed_req( req: &HttpRequest, hidden_files: bool, ) -> Result<Self, UriSegmentError>

Parse a safe path from the unprocessed tail of a supplied HttpRequest, given the choice of allowing hidden files to be considered valid segments.

This uses HttpRequest::match_info and Path::unprocessed, which returns the part of the path not matched by route patterns. This is useful for mounted services (eg. Files), where only the tail should be parsed.

Path traversal is guarded by this method.

Source

pub fn parse_req_path( req: &HttpRequest, hidden_files: bool, ) -> Result<Self, UriSegmentError>

Parse a safe path from the full request path of a supplied HttpRequest, given the choice of allowing hidden files to be considered valid segments.

This uses HttpRequest::path, and is more appropriate for non-mounted handlers that want the entire request path.

Path traversal is guarded by this method.

Source

pub fn parse_path( path: &str, hidden_files: bool, ) -> Result<Self, UriSegmentError>

Parse a path, giving the choice of allowing hidden files to be considered valid segments.

Path traversal is guarded by this method.

Trait Implementations§

Source§

impl AsRef<Path> for PathBufWrap

Source§

fn as_ref(&self) -> &Path

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl Debug for PathBufWrap

Source§

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

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

impl FromRequest for PathBufWrap

Source§

type Error = UriSegmentError

The associated error which can be returned.
Source§

type Future = Ready<Result<PathBufWrap, <PathBufWrap as FromRequest>::Error>>

Future that resolves to a Self. Read more
Source§

fn from_request(req: &HttpRequest, _: &mut Payload) -> Self::Future

Create a Self from request parts asynchronously.
Source§

fn extract(req: &HttpRequest) -> Self::Future

Create a Self from request head asynchronously. Read more
Source§

impl FromStr for PathBufWrap

Source§

type Err = UriSegmentError

The associated error which can be returned from parsing.
Source§

fn from_str(path: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more
Source§

impl PartialEq for PathBufWrap

Source§

fn eq(&self, other: &PathBufWrap) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for PathBufWrap

Source§

impl StructuralPartialEq for PathBufWrap

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