Struct poem_reverse_proxy::ProxyConfig

source ·
pub struct ProxyConfig { /* private fields */ }
Expand description

A configuration object that allows for fine-grained control over a proxy endpoint.

Implementations§

source§

impl ProxyConfig

§Implementation of Builder Functions

The ProxyConfig struct follows the builder pattern to enable explicit and succinct configuration of the proxy endpoint.

source

pub fn new<'a>(target: impl Into<String>) -> ProxyConfig

Function that creates a new ProxyConfig for a given target and sets all other parameters to their default values. See the default implementation for more information.

source

pub fn ws_secure<'a>(&'a mut self) -> &'a mut ProxyConfig

This function sets the endpoint to forward websockets over https instead of http. (This is WSS - WebSocket Secure)

source

pub fn ws_insecure<'a>(&'a mut self) -> &'a mut ProxyConfig

This function sets the endpoint to forward websockets over http instead of https. This means any information being sent through the websocket has the potential to be intercepted by malicious actors.

source

pub fn web_secure<'a>(&'a mut self) -> &'a mut ProxyConfig

This function sets the endpoint to forward requests to the target over the https protocol. This is a secure and encrypted communication channel that should be utilized when possible.

source

pub fn web_insecure<'a>(&'a mut self) -> &'a mut ProxyConfig

This function sets the endpoint to forward requests to the target over the http protocol. This is an insecure and unencrypted communication channel that should be used very carefully.

source

pub fn enable_nesting<'a>(&'a mut self) -> &'a mut ProxyConfig

This function sets the waypoint to support nesting.

For example, if endpoint.target is https://google.com and the proxy is reached at https://proxy_address/favicon.png, the proxy server will forward the request to https://google.com/favicon.png.

source

pub fn disable_nesting<'a>(&'a mut self) -> &'a mut ProxyConfig

This function sets the waypoint to ignore nesting.

For example, if endpoint.target is https://google.com and the proxy is reached at https://proxy_address/favicon.png, the proxy server will forward the request to https://google.com.

source

pub fn finish<'a>(&'a mut self) -> ProxyConfig

Finishes off the building proccess by returning a new ProxyConfig object (not reference) that contains all the settings that were previously specified.

source§

impl ProxyConfig

§Convenience Functions

These functions make it possible to get information from the ProxyConfig struct.

source

pub fn get_web_request_uri(&self, subpath: Option<String>) -> Result<String, ()>

Returns the target url of the request, including the proper protocol information and the correct pathing if nesting is enabled

An example output would be

"https://proxy.domain.com"

source

pub fn get_web_socket_uri(&self) -> Result<String, ()>

Returns the target url of the websocket, including the proper protocol information.

An example output would be

"wss://websocket.domain.com"

Trait Implementations§

source§

impl Clone for ProxyConfig

source§

fn clone(&self) -> ProxyConfig

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for ProxyConfig

source§

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

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

impl Default for ProxyConfig

source§

fn default() -> Self

Returns the default value for the ProxyConfig, which corresponds to the following:

proxy_target: "http://localhost:3000"

web_secure: None

ws_secure: None

support_nesting: false

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

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

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

§

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>,

§

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<V, T> VZip<V> for T
where V: MultiLane<T>,

source§

fn vzip(self) -> V

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