1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
mod api_key;
mod basic;
mod bearer;
use std::collections::HashMap;
pub use api_key::ApiKey;
pub use basic::Basic;
pub use bearer::Bearer;
use poem::Request;
use crate::{registry::MetaParamIn, ParseRequestError};
pub trait BasicAuthorization: Sized {
fn from_request(req: &Request) -> Result<Self, ParseRequestError>;
}
pub trait BearerAuthorization: Sized {
fn from_request(req: &Request) -> Result<Self, ParseRequestError>;
}
pub trait ApiKeyAuthorization: Sized {
fn from_request(
req: &Request,
query: &HashMap<String, String>,
name: &str,
in_type: MetaParamIn,
) -> Result<Self, ParseRequestError>;
}