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>
impl<F> AuthGuard<F>
sourcepub fn new(f: F) -> Self
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>
impl<F> Handler for AuthGuard<F>
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,
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> 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