feat: add basic graphql support

This commit is contained in:
2025-01-04 20:38:41 +08:00
parent caaa5dc0cc
commit 40cbf86f0f
62 changed files with 4053 additions and 675 deletions

View File

@@ -1,3 +1,4 @@
use async_trait::async_trait;
use axum::{http::request::Parts, RequestPartsExt};
use axum_auth::AuthBasic;
@@ -13,7 +14,7 @@ pub struct BasicAuthService {
pub config: BasicAuthConfig,
}
#[async_trait::async_trait]
#[async_trait]
impl AuthService for BasicAuthService {
async fn extract_user_info(&self, request: &mut Parts) -> Result<AuthUserInfo, AuthError> {
if let Ok(AuthBasic((found_user, found_password))) = request.extract().await {

View File

@@ -1,5 +1,6 @@
use std::collections::{HashMap, HashSet};
use async_trait::async_trait;
use axum::http::request::Parts;
use itertools::Itertools;
use jwt_authorizer::{authorizer::Authorizer, NumericDate, OneOrArray};
@@ -80,7 +81,7 @@ pub struct OidcAuthService {
pub authorizer: Authorizer<OidcAuthClaims>,
}
#[async_trait::async_trait]
#[async_trait]
impl AuthService for OidcAuthService {
async fn extract_user_info(&self, request: &mut Parts) -> Result<AuthUserInfo, AuthError> {
let config = &self.config;

View File

@@ -1,3 +1,4 @@
use async_trait::async_trait;
use axum::{
extract::FromRequestParts,
http::request::Parts,
@@ -21,7 +22,7 @@ pub struct AuthUserInfo {
pub auth_type: AuthType,
}
#[async_trait::async_trait]
#[async_trait]
impl<S> FromRequestParts<S> for AuthUserInfo
where
S: Send + Sync,
@@ -42,7 +43,7 @@ where
}
}
#[async_trait::async_trait]
#[async_trait]
pub trait AuthService {
async fn extract_user_info(&self, request: &mut Parts) -> Result<AuthUserInfo, AuthError>;
}
@@ -84,7 +85,7 @@ impl AppAuthService {
}
}
#[async_trait::async_trait]
#[async_trait]
impl AuthService for AppAuthService {
async fn extract_user_info(&self, request: &mut Parts) -> Result<AuthUserInfo, AuthError> {
match self {
@@ -96,7 +97,7 @@ impl AuthService for AppAuthService {
pub struct AppAuthServiceInitializer;
#[async_trait::async_trait]
#[async_trait]
impl Initializer for AppAuthServiceInitializer {
fn name(&self) -> String {
String::from("AppAuthServiceInitializer")