Skip to main content

OAuthProviderPlugin

Struct OAuthProviderPlugin 

Source
pub struct OAuthProviderPlugin { /* private fields */ }

Implementations§

Source§

impl OAuthProviderPlugin

Source

pub fn oauth2_authorize_endpoint( query: &impl Serialize, ) -> AuthResult<ServerEndpoint<Value>>

Authorize an OAuth request with its genuine physical request attached.

Source§

impl OAuthProviderPlugin

Source§

impl OAuthProviderPlugin

Source

pub fn get_oauth_client_endpoint( client_id: &str, ) -> AuthResult<ServerEndpoint<Value>>

Read an owned client without exposing its stored credential.

Source§

impl OAuthProviderPlugin

Source

pub fn get_oauth_client_public_endpoint( client_id: &str, ) -> AuthResult<ServerEndpoint<Value>>

Read public display fields for any authenticated user.

Source§

impl OAuthProviderPlugin

Source

pub fn get_oauth_clients_endpoint() -> ServerEndpoint<Value>

List durable clients belonging to the authenticated user.

Source§

impl OAuthProviderPlugin

Source

pub fn delete_oauth_client_endpoint( client_id: &str, ) -> AuthResult<ServerEndpoint<()>>

Delete a durable client owned by the authenticated user.

Source§

impl OAuthProviderPlugin

Source

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

Source

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

Source

pub fn register_oauth_client_endpoint( input: &CreateOAuthClientInput, ) -> AuthResult<ServerEndpoint<Value>>

Register a client under the provider’s dynamic-registration policy.

Source§

impl OAuthProviderPlugin

Source

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

Source

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

Source

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

Accept or deny a provider-issued authorization request as the current user.

Source§

impl OAuthProviderPlugin

Source

pub fn get_oauth_consents_endpoint() -> ServerEndpoint<Value>

List durable OAuth grants belonging to the current authenticated user.

Source§

impl OAuthProviderPlugin

Return the current user’s durable consent identified by its stored grant ID.

Source§

impl OAuthProviderPlugin

Replace the current user’s granted scopes with a subset allowed by the client.

Source§

impl OAuthProviderPlugin

Delete the current user’s stored OAuth grant.

Source§

impl OAuthProviderPlugin

Source

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

Source

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

Source§

impl OAuthProviderPlugin

Source

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

Source

pub fn admin_list_oauth_resources_endpoint() -> ServerEndpoint<Value>

List the provider’s complete resource catalog through its server-only API.

Source§

impl OAuthProviderPlugin

Source

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

Source

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

Source

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

Grant a client durable membership in a provider resource through the server-only API.

Source§

impl OAuthProviderPlugin

Remove a client’s durable resource membership, including an already absent pair.

Source§

impl OAuthProviderPlugin

Source

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

Source

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

Source

pub fn oauth2_user_info_endpoint() -> ServerEndpoint<Value>

Read the current user claims authorized by an OAuth access token.

Source§

impl OAuthProviderPlugin

Source

pub fn new() -> Self

Source

pub fn with_config(config: OAuthProviderConfig) -> Self

Source

pub fn get_oauth_server_config_endpoint() -> ServerEndpoint<Value>

Return the issuer’s authorization-server configuration for trusted server callers.

Source

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

Source§

fn name(&self) -> &'static str

Plugin name - should be unique
Source§

fn allowed_media_types(&self, route: &AuthRoute) -> Vec<&'static str>

Media types accepted before request hooks and endpoint dispatch. An empty list disables the media restriction for an application-owned endpoint.
Source§

fn routes(&self) -> Vec<AuthRoute>

Routes that this plugin handles
Source§

fn server_endpoints(&self) -> Vec<EndpointDefinition>

Trusted operations available through host dispatch, independently of HTTP visibility.
Source§

fn validate_endpoint( &self, call: &EndpointCall, _ctx: &AuthContext<S>, ) -> AuthResult<EndpointInput>

Validate actual input after all before-hook patches have been applied. Read more
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,

Execute a registered operation with validated handler-phase context. Read more
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,

Called for each request - return Some(response) to handle, None to pass through
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,

Called when the plugin is initialized
Source§

fn rate_limits(&self) -> Vec<PluginRateLimit>

Ordered rate-limit policies supplied by this installed plugin.
Source§

fn endpoint_hooks(&self) -> Vec<&dyn EndpointHook<S>>

Installed logical-call hooks, in this plugin’s registration order.
Source§

fn session_fields(&self) -> IndexMap<String, FieldConfig>

Session field policies contributed by this registered plugin.
Source§

fn user_fields(&self) -> IndexMap<String, FieldConfig>

Source§

fn account_fields(&self) -> IndexMap<String, FieldConfig>

Source§

fn openapi_metadata(&self, _ctx: &AuthInitContext<S>) -> PluginOpenApiMetadata

Documentation annotations collected after all plugins initialize. Override this hook for custom endpoints and model field policies.
Source§

fn static_openapi_metadata(&self) -> PluginOpenApiMetadata

Base declarations for documentation without an initialized auth instance.
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,

Inspect the original physical HTTP request before routing, body parsing, origin validation and endpoint hooks. Disabled paths and transport/rate limiting middleware run first. Returning a response stops dispatch and later plugin hooks. Server-only endpoint calls do not invoke this hook.
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,

Inspect or replace the physical request. The default preserves existing 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,

Observe the routed HTTP response before transport middleware (including CORS). Hooks run in registration order; the first replacement stops this chain. Early HTTP request-hook responses skip this stage. Errors escape dispatch; they cannot reverse writes already committed by an endpoint.
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,

Called after route matching and before endpoint dispatch. Read more
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,

Dispatch the resolved HTTP endpoint. Existing plugins return logical values through on_request; plugins returning a native raw response can override this method to bypass the endpoint after-hook pipeline.
Source§

fn after_request<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, _req: &'life1 AuthRequest, _ctx: &'life2 AuthContext<S>, response: AuthResponse, ) -> Pin<Box<dyn Future<Output = Result<AuthResponse, AuthError>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

Transform a completed response, including redirects and rejections. Read more
Source§

fn on_user_created<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, _user: &'life1 <S as AuthSchema>::User, _ctx: &'life2 AuthContext<S>, ) -> Pin<Box<dyn Future<Output = Result<(), AuthError>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

Called after a user is created
Source§

fn on_session_created<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, _session: &'life1 <S as AuthSchema>::Session, _ctx: &'life2 AuthContext<S>, ) -> Pin<Box<dyn Future<Output = Result<(), AuthError>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

Called after a session is created
Source§

fn on_user_deleted<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, _user_id: &'life1 str, _ctx: &'life2 AuthContext<S>, ) -> Pin<Box<dyn Future<Output = Result<(), AuthError>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

Called before a user is deleted
Source§

fn on_session_deleted<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, _session_token: &'life1 str, _ctx: &'life2 AuthContext<S>, ) -> Pin<Box<dyn Future<Output = Result<(), AuthError>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

Called before a session is deleted
Source§

impl Clone for OAuthProviderPlugin

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for OAuthProviderPlugin

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for OAuthProviderPlugin

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

Source§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

Source§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

Source§

fn implicit( self, class: Class, constructed: bool, tag: u32, ) -> TaggedParser<'a, Implicit, Self, E>

Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FromRef<T> for T
where T: Clone,

Source§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
Source§

impl<A, B, T> HttpServerConnExec<A, B> for T
where B: Body,

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more