pub struct AuthenticationMiddleware { /* private fields */ }Expand description
Authentication middleware for API key and OAuth 2.0 support
Implementations§
Source§impl AuthenticationMiddleware
impl AuthenticationMiddleware
Sourcepub fn new(api_keys: HashMap<String, ApiKeyInfo>, jwt_secret: String) -> Self
pub fn new(api_keys: HashMap<String, ApiKeyInfo>, jwt_secret: String) -> Self
Create a new authentication middleware
Sourcepub fn with_oauth(
api_keys: HashMap<String, ApiKeyInfo>,
jwt_secret: String,
oauth_config: OAuthConfig,
) -> Self
pub fn with_oauth( api_keys: HashMap<String, ApiKeyInfo>, jwt_secret: String, oauth_config: OAuthConfig, ) -> Self
Create with OAuth 2.0 support
Sourcepub fn permissive() -> Self
pub fn permissive() -> Self
Create without requiring authentication (for testing)
Trait Implementations§
Source§impl McpMiddleware for AuthenticationMiddleware
impl McpMiddleware for AuthenticationMiddleware
Source§fn before_request<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
request: &'life1 CallToolRequest,
context: &'life2 mut MiddlewareContext,
) -> Pin<Box<dyn Future<Output = McpResult<MiddlewareResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn before_request<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
request: &'life1 CallToolRequest,
context: &'life2 mut MiddlewareContext,
) -> Pin<Box<dyn Future<Output = McpResult<MiddlewareResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Called before the request is processed
Source§fn after_request<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
request: &'life1 CallToolRequest,
response: &'life2 mut CallToolResult,
context: &'life3 mut MiddlewareContext,
) -> Pin<Box<dyn Future<Output = McpResult<MiddlewareResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn after_request<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
request: &'life1 CallToolRequest,
response: &'life2 mut CallToolResult,
context: &'life3 mut MiddlewareContext,
) -> Pin<Box<dyn Future<Output = McpResult<MiddlewareResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Called after the request is processed but before response is returned
Source§fn on_error<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
request: &'life1 CallToolRequest,
error: &'life2 McpError,
context: &'life3 mut MiddlewareContext,
) -> Pin<Box<dyn Future<Output = McpResult<MiddlewareResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn on_error<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
request: &'life1 CallToolRequest,
error: &'life2 McpError,
context: &'life3 mut MiddlewareContext,
) -> Pin<Box<dyn Future<Output = McpResult<MiddlewareResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Called when an error occurs during request processing
Auto Trait Implementations§
impl Freeze for AuthenticationMiddleware
impl RefUnwindSafe for AuthenticationMiddleware
impl Send for AuthenticationMiddleware
impl Sync for AuthenticationMiddleware
impl Unpin for AuthenticationMiddleware
impl UnwindSafe for AuthenticationMiddleware
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
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more