pub struct OAuthProviderPlugin { /* private fields */ }Implementations§
Source§impl OAuthProviderPlugin
impl OAuthProviderPlugin
Authorize an OAuth request with its genuine physical request attached.
Source§impl OAuthProviderPlugin
impl OAuthProviderPlugin
pub fn create_oauth_client_endpoint( input: &CreateOAuthClientInput, ) -> AuthResult<ServerEndpoint<Value>>
Source§impl OAuthProviderPlugin
impl OAuthProviderPlugin
Sourcepub fn get_oauth_client_endpoint(
client_id: &str,
) -> AuthResult<ServerEndpoint<Value>>
pub fn get_oauth_client_endpoint( client_id: &str, ) -> AuthResult<ServerEndpoint<Value>>
Read an owned client without exposing its stored credential.
Source§impl OAuthProviderPlugin
impl OAuthProviderPlugin
Sourcepub fn get_oauth_client_public_endpoint(
client_id: &str,
) -> AuthResult<ServerEndpoint<Value>>
pub fn get_oauth_client_public_endpoint( client_id: &str, ) -> AuthResult<ServerEndpoint<Value>>
Read public display fields for any authenticated user.
Source§impl OAuthProviderPlugin
impl OAuthProviderPlugin
Sourcepub fn get_oauth_clients_endpoint() -> ServerEndpoint<Value>
pub fn get_oauth_clients_endpoint() -> ServerEndpoint<Value>
List durable clients belonging to the authenticated user.
Source§impl OAuthProviderPlugin
impl OAuthProviderPlugin
Sourcepub fn delete_oauth_client_endpoint(
client_id: &str,
) -> AuthResult<ServerEndpoint<()>>
pub fn delete_oauth_client_endpoint( client_id: &str, ) -> AuthResult<ServerEndpoint<()>>
Delete a durable client owned by the authenticated user.
Source§impl OAuthProviderPlugin
impl OAuthProviderPlugin
Sourcepub fn rotate_client_secret_endpoint(
client_id: &str,
) -> AuthResult<ServerEndpoint<Value>>
pub fn rotate_client_secret_endpoint( client_id: &str, ) -> AuthResult<ServerEndpoint<Value>>
Rotate an owned confidential client secret and reveal its replacement once.
Source§impl OAuthProviderPlugin
impl OAuthProviderPlugin
Sourcepub fn update_oauth_client_endpoint(
client_id: &str,
update: &impl Serialize,
) -> AuthResult<ServerEndpoint<Value>>
pub fn update_oauth_client_endpoint( client_id: &str, update: &impl Serialize, ) -> AuthResult<ServerEndpoint<Value>>
Patch metadata of a durable client owned by the authenticated user.
Source§impl OAuthProviderPlugin
impl OAuthProviderPlugin
Sourcepub fn register_oauth_client_endpoint(
input: &CreateOAuthClientInput,
) -> AuthResult<ServerEndpoint<Value>>
pub fn register_oauth_client_endpoint( input: &CreateOAuthClientInput, ) -> AuthResult<ServerEndpoint<Value>>
Register a client under the provider’s dynamic-registration policy.
Source§impl OAuthProviderPlugin
impl OAuthProviderPlugin
Sourcepub fn admin_create_oauth_client_endpoint(
input: &impl Serialize,
) -> AuthResult<ServerEndpoint<Value>>
pub fn admin_create_oauth_client_endpoint( input: &impl Serialize, ) -> AuthResult<ServerEndpoint<Value>>
Create a managed client with operator fields through the trusted server API.
Source§impl OAuthProviderPlugin
impl OAuthProviderPlugin
Sourcepub fn admin_update_oauth_client_endpoint(
client_id: &str,
update: &impl Serialize,
) -> AuthResult<ServerEndpoint<Value>>
pub fn admin_update_oauth_client_endpoint( client_id: &str, update: &impl Serialize, ) -> AuthResult<ServerEndpoint<Value>>
Patch operator-controlled fields of an owned client through the server-only API.
Source§impl OAuthProviderPlugin
impl OAuthProviderPlugin
Sourcepub fn get_oauth_client_public_prelogin_endpoint(
client_id: &str,
oauth_query: Option<&str>,
) -> AuthResult<ServerEndpoint<Value>>
pub fn get_oauth_client_public_prelogin_endpoint( client_id: &str, oauth_query: Option<&str>, ) -> AuthResult<ServerEndpoint<Value>>
Read public client display metadata before login using a provider-issued authorization query.
Source§impl OAuthProviderPlugin
impl OAuthProviderPlugin
Sourcepub fn oauth2_consent_endpoint(
accept: bool,
scope: Option<&str>,
oauth_query: Option<&str>,
) -> AuthResult<ServerEndpoint<Value>>
pub fn oauth2_consent_endpoint( accept: bool, scope: Option<&str>, oauth_query: Option<&str>, ) -> AuthResult<ServerEndpoint<Value>>
Accept or deny a provider-issued authorization request as the current user.
Source§impl OAuthProviderPlugin
impl OAuthProviderPlugin
Sourcepub fn get_oauth_consents_endpoint() -> ServerEndpoint<Value>
pub fn get_oauth_consents_endpoint() -> ServerEndpoint<Value>
List durable OAuth grants belonging to the current authenticated user.
Source§impl OAuthProviderPlugin
impl OAuthProviderPlugin
Sourcepub fn get_oauth_consent_endpoint(id: &str) -> AuthResult<ServerEndpoint<Value>>
pub fn get_oauth_consent_endpoint(id: &str) -> AuthResult<ServerEndpoint<Value>>
Return the current user’s durable consent identified by its stored grant ID.
Source§impl OAuthProviderPlugin
impl OAuthProviderPlugin
Sourcepub fn update_oauth_consent_endpoint(
id: &str,
scopes: &[String],
) -> AuthResult<ServerEndpoint<Value>>
pub fn update_oauth_consent_endpoint( id: &str, scopes: &[String], ) -> AuthResult<ServerEndpoint<Value>>
Replace the current user’s granted scopes with a subset allowed by the client.
Source§impl OAuthProviderPlugin
impl OAuthProviderPlugin
Sourcepub fn delete_oauth_consent_endpoint(id: &str) -> AuthResult<ServerEndpoint<()>>
pub fn delete_oauth_consent_endpoint(id: &str) -> AuthResult<ServerEndpoint<()>>
Delete the current user’s stored OAuth grant.
Source§impl OAuthProviderPlugin
impl OAuthProviderPlugin
Sourcepub fn oauth2_continue_endpoint(
input: &impl Serialize,
) -> AuthResult<ServerEndpoint<Value>>
pub fn oauth2_continue_endpoint( input: &impl Serialize, ) -> AuthResult<ServerEndpoint<Value>>
Resume a signed OAuth request after account selection, registration or post-login interaction.
Source§impl OAuthProviderPlugin
impl OAuthProviderPlugin
Sourcepub fn oauth2_introspect_endpoint(
input: &impl Serialize,
) -> AuthResult<ServerEndpoint<Value>>
pub fn oauth2_introspect_endpoint( input: &impl Serialize, ) -> AuthResult<ServerEndpoint<Value>>
Inspect an access or refresh token using the introspecting client’s credentials.
Source§impl OAuthProviderPlugin
impl OAuthProviderPlugin
pub fn oauth2_end_session_confirmation_endpoint() -> AuthResult<ServerEndpoint<Value>>
pub fn oauth2_end_session_endpoint( input: &Value, ) -> AuthResult<ServerEndpoint<Value>>
Source§impl OAuthProviderPlugin
impl OAuthProviderPlugin
Sourcepub fn admin_create_oauth_resource_endpoint(
input: &impl Serialize,
) -> AuthResult<ServerEndpoint<Value>>
pub fn admin_create_oauth_resource_endpoint( input: &impl Serialize, ) -> AuthResult<ServerEndpoint<Value>>
Create durable provider resource policy through the server-only administration API.
Source§impl OAuthProviderPlugin
impl OAuthProviderPlugin
Sourcepub fn admin_list_oauth_resources_endpoint() -> ServerEndpoint<Value>
pub fn admin_list_oauth_resources_endpoint() -> ServerEndpoint<Value>
List the provider’s complete resource catalog through its server-only API.
Source§impl OAuthProviderPlugin
impl OAuthProviderPlugin
Sourcepub fn admin_get_oauth_resource_endpoint(
identifier: &str,
) -> AuthResult<ServerEndpoint<Value>>
pub fn admin_get_oauth_resource_endpoint( identifier: &str, ) -> AuthResult<ServerEndpoint<Value>>
Read durable resource policy by a raw or URI-encoded identifier through the server-only API.
Source§impl OAuthProviderPlugin
impl OAuthProviderPlugin
Sourcepub fn admin_update_oauth_resource_endpoint(
identifier: &str,
patch: &impl Serialize,
) -> AuthResult<ServerEndpoint<Value>>
pub fn admin_update_oauth_resource_endpoint( identifier: &str, patch: &impl Serialize, ) -> AuthResult<ServerEndpoint<Value>>
Patch the provider’s durable resource policy without changing its identifier.
Source§impl OAuthProviderPlugin
impl OAuthProviderPlugin
Sourcepub fn admin_delete_oauth_resource_endpoint(
identifier: &str,
) -> AuthResult<ServerEndpoint<Value>>
pub fn admin_delete_oauth_resource_endpoint( identifier: &str, ) -> AuthResult<ServerEndpoint<Value>>
Remove durable provider resource policy through the server-only administration API.
Source§impl OAuthProviderPlugin
impl OAuthProviderPlugin
Sourcepub fn admin_link_client_resource_endpoint(
identifier: &str,
client_id: &str,
) -> AuthResult<ServerEndpoint<Value>>
pub fn admin_link_client_resource_endpoint( identifier: &str, client_id: &str, ) -> AuthResult<ServerEndpoint<Value>>
Grant a client durable membership in a provider resource through the server-only API.
Source§impl OAuthProviderPlugin
impl OAuthProviderPlugin
Sourcepub fn admin_unlink_client_resource_endpoint(
identifier: &str,
client_id: &str,
) -> AuthResult<ServerEndpoint<Value>>
pub fn admin_unlink_client_resource_endpoint( identifier: &str, client_id: &str, ) -> AuthResult<ServerEndpoint<Value>>
Remove a client’s durable resource membership, including an already absent pair.
Source§impl OAuthProviderPlugin
impl OAuthProviderPlugin
Sourcepub fn oauth2_revoke_endpoint(
input: &impl Serialize,
) -> AuthResult<ServerEndpoint<Value>>
pub fn oauth2_revoke_endpoint( input: &impl Serialize, ) -> AuthResult<ServerEndpoint<Value>>
Revoke an issued token using its client’s registered authentication method.
Source§impl OAuthProviderPlugin
impl OAuthProviderPlugin
Sourcepub fn oauth2_token_endpoint(
input: &impl Serialize,
) -> AuthResult<ServerEndpoint<Value>>
pub fn oauth2_token_endpoint( input: &impl Serialize, ) -> AuthResult<ServerEndpoint<Value>>
Exchange an OAuth grant through the provider’s public server operation.
Source§impl OAuthProviderPlugin
impl OAuthProviderPlugin
Sourcepub fn oauth2_user_info_endpoint() -> ServerEndpoint<Value>
pub fn oauth2_user_info_endpoint() -> ServerEndpoint<Value>
Read the current user claims authorized by an OAuth access token.
Source§impl OAuthProviderPlugin
impl OAuthProviderPlugin
pub fn new() -> Self
pub fn with_config(config: OAuthProviderConfig) -> Self
Sourcepub fn get_oauth_server_config_endpoint() -> ServerEndpoint<Value>
pub fn get_oauth_server_config_endpoint() -> ServerEndpoint<Value>
Return the issuer’s authorization-server configuration for trusted server callers.
Sourcepub fn get_open_id_config_endpoint() -> ServerEndpoint<Value>
pub fn get_open_id_config_endpoint() -> ServerEndpoint<Value>
Return OpenID configuration when the provider supports the openid scope.
Trait Implementations§
Source§impl<S: AuthSchema> AuthPlugin<S> for OAuthProviderPlugin
impl<S: AuthSchema> AuthPlugin<S> for OAuthProviderPlugin
Source§fn allowed_media_types(&self, route: &AuthRoute) -> Vec<&'static str>
fn allowed_media_types(&self, route: &AuthRoute) -> Vec<&'static str>
Source§fn server_endpoints(&self) -> Vec<EndpointDefinition>
fn server_endpoints(&self) -> Vec<EndpointDefinition>
Source§fn validate_endpoint(
&self,
call: &EndpointCall,
_ctx: &AuthContext<S>,
) -> AuthResult<EndpointInput>
fn validate_endpoint( &self, call: &EndpointCall, _ctx: &AuthContext<S>, ) -> AuthResult<EndpointInput>
Source§fn on_endpoint<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
call: &'life1 EndpointCall,
ctx: &'life2 AuthContext<S>,
) -> Pin<Box<dyn Future<Output = AuthResult<EndpointResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn on_endpoint<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
call: &'life1 EndpointCall,
ctx: &'life2 AuthContext<S>,
) -> Pin<Box<dyn Future<Output = AuthResult<EndpointResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§fn on_request<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
req: &'life1 AuthRequest,
ctx: &'life2 AuthContext<S>,
) -> Pin<Box<dyn Future<Output = AuthResult<Option<AuthResponse>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn on_request<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
req: &'life1 AuthRequest,
ctx: &'life2 AuthContext<S>,
) -> Pin<Box<dyn Future<Output = AuthResult<Option<AuthResponse>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§fn on_init<'life0, 'life1, 'async_trait>(
&'life0 self,
ctx: &'life1 mut AuthInitContext<S>,
) -> Pin<Box<dyn Future<Output = AuthResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn on_init<'life0, 'life1, 'async_trait>(
&'life0 self,
ctx: &'life1 mut AuthInitContext<S>,
) -> Pin<Box<dyn Future<Output = AuthResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn rate_limits(&self) -> Vec<PluginRateLimit>
fn rate_limits(&self) -> Vec<PluginRateLimit>
Source§fn endpoint_hooks(&self) -> Vec<&dyn EndpointHook<S>>
fn endpoint_hooks(&self) -> Vec<&dyn EndpointHook<S>>
Source§fn session_fields(&self) -> IndexMap<String, FieldConfig>
fn session_fields(&self) -> IndexMap<String, FieldConfig>
fn user_fields(&self) -> IndexMap<String, FieldConfig>
fn account_fields(&self) -> IndexMap<String, FieldConfig>
Source§fn openapi_metadata(&self, _ctx: &AuthInitContext<S>) -> PluginOpenApiMetadata
fn openapi_metadata(&self, _ctx: &AuthInitContext<S>) -> PluginOpenApiMetadata
Source§fn static_openapi_metadata(&self) -> PluginOpenApiMetadata
fn static_openapi_metadata(&self) -> PluginOpenApiMetadata
Source§fn on_http_request<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_req: &'life1 AuthRequest,
_ctx: &'life2 AuthContext<S>,
) -> Pin<Box<dyn Future<Output = Result<Option<AuthResponse>, AuthError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
fn on_http_request<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_req: &'life1 AuthRequest,
_ctx: &'life2 AuthContext<S>,
) -> Pin<Box<dyn Future<Output = Result<Option<AuthResponse>, AuthError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
Source§fn on_http_request_action<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
req: &'life1 AuthRequest,
ctx: &'life2 AuthContext<S>,
) -> Pin<Box<dyn Future<Output = Result<Option<HttpRequestAction>, AuthError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
fn on_http_request_action<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
req: &'life1 AuthRequest,
ctx: &'life2 AuthContext<S>,
) -> Pin<Box<dyn Future<Output = Result<Option<HttpRequestAction>, AuthError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
on_http_request implementations. Request-local configuration has already
been resolved from the incoming request, matching the Source HTTP handler.Source§fn on_http_response<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
_req: &'life1 AuthRequest,
_ctx: &'life2 AuthContext<S>,
_response: &'life3 AuthResponse,
) -> Pin<Box<dyn Future<Output = Result<Option<AuthResponse>, AuthError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Self: 'async_trait,
fn on_http_response<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
_req: &'life1 AuthRequest,
_ctx: &'life2 AuthContext<S>,
_response: &'life3 AuthResponse,
) -> Pin<Box<dyn Future<Output = Result<Option<AuthResponse>, AuthError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Self: 'async_trait,
Source§fn before_request<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_req: &'life1 AuthRequest,
_ctx: &'life2 AuthContext<S>,
) -> Pin<Box<dyn Future<Output = Result<Option<BeforeRequestAction>, AuthError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
fn before_request<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_req: &'life1 AuthRequest,
_ctx: &'life2 AuthContext<S>,
) -> Pin<Box<dyn Future<Output = Result<Option<BeforeRequestAction>, AuthError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
Source§fn on_http_endpoint<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
req: &'life1 AuthRequest,
ctx: &'life2 AuthContext<S>,
) -> Pin<Box<dyn Future<Output = Result<Option<HttpEndpointResponse>, AuthError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
fn on_http_endpoint<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
req: &'life1 AuthRequest,
ctx: &'life2 AuthContext<S>,
) -> Pin<Box<dyn Future<Output = Result<Option<HttpEndpointResponse>, AuthError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
on_request; plugins returning a native raw response can
override this method to bypass the endpoint after-hook pipeline.