Struct webserver_rs::web_core::authorization::AuthGuard

source ·
pub struct AuthGuard<F: Fn(JwtAuthState) -> AnyHttpError + Send + Sync + 'static> { /* private fields */ }

Implementations§

source§

impl<F> AuthGuard<F>
where F: Fn(JwtAuthState) -> AnyHttpError + Send + Sync + 'static,

source

pub fn new(f: F) -> Self

Examples found in repository?
examples/hello.rs (line 106)
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
async fn main() -> anyhow::Result<()> {
    let config = Config::from_config_file("./config.toml").expect("config file not found");
    let jwt = authorization::gen_jwt_auth::<JwtClaim>(
        config.secret_key.clone(),
        vec![Box::new(HeaderFinder::new())],
    );

    webserver_rs::serve_routes! {
        config =>[
        // http://localhost:8080/hello
        router!([get, post] => @hello)
            .hoop(jwt)
            .hoop(authorization::AuthGuard::new(|_e| html_err!("unauthorized"))),
        // http://localhost:8080/user/login
        router!([get] => /user/@login),
        // http://localhost:8080/a/b/show
        router!([get, post] => a/b/@ab::show),
        // http://localhost:8080/b/c/show/*
        router!([get, post, put] => /b/c/@ab::show/<**path>),
        // http://localhost:8080/test_json
        router!([get, post] => @text_json).hoop(build_cros("*")),
        // http://localhost:8080/ab/shop/show
        router!([get, post] => ...@ab::shop::show).hoop(build_cros("*")),
        ]
    };
    Ok(())
}

Trait Implementations§

source§

impl<F> Handler for AuthGuard<F>
where F: Fn(JwtAuthState) -> AnyHttpError + Send + Sync + 'static,

source§

fn handle<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>( &'life0 self, req: &'life1 mut Request, depot: &'life2 mut Depot, res: &'life3 mut Response, ctrl: &'life4 mut FlowCtrl ) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait, 'life4: 'async_trait,

Handle http request.

Auto Trait Implementations§

§

impl<F> Freeze for AuthGuard<F>
where F: Freeze,

§

impl<F> RefUnwindSafe for AuthGuard<F>
where F: RefUnwindSafe,

§

impl<F> Send for AuthGuard<F>

§

impl<F> Sync for AuthGuard<F>

§

impl<F> Unpin for AuthGuard<F>
where F: Unpin,

§

impl<F> UnwindSafe for AuthGuard<F>
where F: UnwindSafe,

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